PCI/hotplug: pnv_php: handle OPAL_PCI_SLOT_OFFLINE power state
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Wed, 13 Jul 2016 21:17:13 +0000 (07:17 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 14 Jul 2016 10:28:10 +0000 (20:28 +1000)
When calling pnv_php_set_slot_power_state() with state ==
OPAL_PCI_SLOT_OFFLINE, remove devices from the device tree as if we're
dealing with OPAL_PCI_SLOT_POWER_OFF.

Cc: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: linux-pci@vger.kernel.org
Cc: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/pci/hotplug/pnv_php.c

index 2d2f704e1e97784a8088345ccd3dd9c4662a7eb1..e6245b03f0a1cf8312116b8bcb7395f02bef0432 100644 (file)
@@ -317,7 +317,7 @@ int pnv_php_set_slot_power_state(struct hotplug_slot *slot,
                return ret;
        }
 
-       if (state == OPAL_PCI_SLOT_POWER_OFF)
+       if (state == OPAL_PCI_SLOT_POWER_OFF || state == OPAL_PCI_SLOT_OFFLINE)
                pnv_php_rmv_devtree(php_slot);
        else
                ret = pnv_php_add_devtree(php_slot);