Commit 0c2c7652 authored by Oliver O'Halloran's avatar Oliver O'Halloran Committed by Michael Ellerman

powerpc/eeh: Pass eeh_dev to eeh_ops->restore_config()

Mechanical conversion of the eeh_ops interfaces to use eeh_dev to reference
a specific device rather than pci_dn. No functional changes.
Signed-off-by: default avatarOliver O'Halloran <oohall@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200725081231.39076-7-oohall@gmail.com
parent 21b43bd5
...@@ -229,7 +229,7 @@ struct eeh_ops { ...@@ -229,7 +229,7 @@ struct eeh_ops {
int (*read_config)(struct pci_dn *pdn, int where, int size, u32 *val); int (*read_config)(struct pci_dn *pdn, int where, int size, u32 *val);
int (*write_config)(struct pci_dn *pdn, int where, int size, u32 val); int (*write_config)(struct pci_dn *pdn, int where, int size, u32 val);
int (*next_error)(struct eeh_pe **pe); int (*next_error)(struct eeh_pe **pe);
int (*restore_config)(struct pci_dn *pdn); int (*restore_config)(struct eeh_dev *edev);
int (*notify_resume)(struct pci_dn *pdn); int (*notify_resume)(struct pci_dn *pdn);
}; };
......
...@@ -726,7 +726,6 @@ static void eeh_disable_and_save_dev_state(struct eeh_dev *edev, ...@@ -726,7 +726,6 @@ static void eeh_disable_and_save_dev_state(struct eeh_dev *edev,
static void eeh_restore_dev_state(struct eeh_dev *edev, void *userdata) static void eeh_restore_dev_state(struct eeh_dev *edev, void *userdata)
{ {
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
struct pci_dev *pdev = eeh_dev_to_pci_dev(edev); struct pci_dev *pdev = eeh_dev_to_pci_dev(edev);
struct pci_dev *dev = userdata; struct pci_dev *dev = userdata;
...@@ -734,8 +733,8 @@ static void eeh_restore_dev_state(struct eeh_dev *edev, void *userdata) ...@@ -734,8 +733,8 @@ static void eeh_restore_dev_state(struct eeh_dev *edev, void *userdata)
return; return;
/* Apply customization from firmware */ /* Apply customization from firmware */
if (pdn && eeh_ops->restore_config) if (eeh_ops->restore_config)
eeh_ops->restore_config(pdn); eeh_ops->restore_config(edev);
/* The caller should restore state for the specified device */ /* The caller should restore state for the specified device */
if (pdev != dev) if (pdev != dev)
......
...@@ -843,16 +843,14 @@ static void eeh_restore_device_bars(struct eeh_dev *edev) ...@@ -843,16 +843,14 @@ static void eeh_restore_device_bars(struct eeh_dev *edev)
*/ */
static void eeh_restore_one_device_bars(struct eeh_dev *edev, void *flag) static void eeh_restore_one_device_bars(struct eeh_dev *edev, void *flag)
{ {
struct pci_dn *pdn = eeh_dev_to_pdn(edev);
/* Do special restore for bridges */ /* Do special restore for bridges */
if (edev->mode & EEH_DEV_BRIDGE) if (edev->mode & EEH_DEV_BRIDGE)
eeh_restore_bridge_bars(edev); eeh_restore_bridge_bars(edev);
else else
eeh_restore_device_bars(edev); eeh_restore_device_bars(edev);
if (eeh_ops->restore_config && pdn) if (eeh_ops->restore_config)
eeh_ops->restore_config(pdn); eeh_ops->restore_config(edev);
} }
/** /**
......
...@@ -1619,12 +1619,10 @@ static int pnv_eeh_next_error(struct eeh_pe **pe) ...@@ -1619,12 +1619,10 @@ static int pnv_eeh_next_error(struct eeh_pe **pe)
return ret; return ret;
} }
static int pnv_eeh_restore_config(struct pci_dn *pdn) static int pnv_eeh_restore_config(struct eeh_dev *edev)
{ {
struct eeh_dev *edev = pdn_to_eeh_dev(pdn);
struct pnv_phb *phb; struct pnv_phb *phb;
s64 ret = 0; s64 ret = 0;
int config_addr = (pdn->busno << 8) | (pdn->devfn);
if (!edev) if (!edev)
return -EEXIST; return -EEXIST;
...@@ -1638,7 +1636,7 @@ static int pnv_eeh_restore_config(struct pci_dn *pdn) ...@@ -1638,7 +1636,7 @@ static int pnv_eeh_restore_config(struct pci_dn *pdn)
if (ret) { if (ret) {
pr_warn("%s: Can't reinit PCI dev 0x%x (%lld)\n", pr_warn("%s: Can't reinit PCI dev 0x%x (%lld)\n",
__func__, config_addr, ret); __func__, edev->bdfn, ret);
return -EIO; return -EIO;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment