summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/eeh_sysfs.c
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2014-09-30 12:39:02 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2014-09-30 17:15:14 +1000
commitc9dd0143978e1c473c08dafe8156259b895db3e2 (patch)
treec22ed5343c6b7d6b542a1dbe3fa79a1a48665063 /arch/powerpc/kernel/eeh_sysfs.c
parent4eeeff0ebcdeabf3f76c4eece0593e98c6619be8 (diff)
downloadlinux-stable-c9dd0143978e1c473c08dafe8156259b895db3e2.tar.gz
linux-stable-c9dd0143978e1c473c08dafe8156259b895db3e2.tar.bz2
linux-stable-c9dd0143978e1c473c08dafe8156259b895db3e2.zip
powerpc/eeh: Use eeh_unfreeze_pe()
The patch uses eeh_unfreeze_pe() to replace the logic clearing frozen IO and DMA, in order to simplify the code. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel/eeh_sysfs.c')
-rw-r--r--arch/powerpc/kernel/eeh_sysfs.c21
1 files changed, 1 insertions, 20 deletions
diff --git a/arch/powerpc/kernel/eeh_sysfs.c b/arch/powerpc/kernel/eeh_sysfs.c
index eb15be4d8849..9a44010bd4b5 100644
--- a/arch/powerpc/kernel/eeh_sysfs.c
+++ b/arch/powerpc/kernel/eeh_sysfs.c
@@ -75,7 +75,6 @@ static ssize_t eeh_pe_state_store(struct device *dev,
{
struct pci_dev *pdev = to_pci_dev(dev);
struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);
- int ret;
if (!edev || !edev->pe)
return -ENODEV;
@@ -84,26 +83,8 @@ static ssize_t eeh_pe_state_store(struct device *dev,
if (!(edev->pe->state & EEH_PE_ISOLATED))
return count;
- /* Enable MMIO */
- ret = eeh_pci_enable(edev->pe, EEH_OPT_THAW_MMIO);
- if (ret) {
- pr_warn("%s: Failure %d enabling MMIO for PHB#%d-PE#%d\n",
- __func__, ret, edev->pe->phb->global_number,
- edev->pe->addr);
+ if (eeh_unfreeze_pe(edev->pe, true))
return -EIO;
- }
-
- /* Enable DMA */
- ret = eeh_pci_enable(edev->pe, EEH_OPT_THAW_DMA);
- if (ret) {
- pr_warn("%s: Failure %d enabling DMA for PHB#%d-PE#%d\n",
- __func__, ret, edev->pe->phb->global_number,
- edev->pe->addr);
- return -EIO;
- }
-
- /* Clear software state */
- eeh_pe_state_clear(edev->pe, EEH_PE_ISOLATED);
return count;
}