summaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug
diff options
context:
space:
mode:
authorSimon Guo <wei.guo.simon@gmail.com>2018-03-07 09:46:04 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2018-03-13 05:50:32 +0100
commit97c6f25d5828b497e3e802b1f7c70187c88df623 (patch)
tree45f54aeb912c410b93419955aeaa18e97da89517 /drivers/pci/hotplug
parentpowerpc/powernv/mce: Don't silently restart the machine (diff)
downloadlinux-97c6f25d5828b497e3e802b1f7c70187c88df623.tar.xz
linux-97c6f25d5828b497e3e802b1f7c70187c88df623.zip
PCI/hotplug: ppc: correct a php_slot usage after free
In pnv_php_unregister_one(), pnv_php_put_slot() might kfree php_slot structure. But there is pci_hp_deregister() after that with php_slot reference. This patch moves pnv_php_put_slot() to the end of function. Signed-off-by: Simon Guo <wei.guo.simon@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/pci/hotplug')
-rw-r--r--drivers/pci/hotplug/pnv_php.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
index 23da3046f160..d44100687dfe 100644
--- a/drivers/pci/hotplug/pnv_php.c
+++ b/drivers/pci/hotplug/pnv_php.c
@@ -919,8 +919,8 @@ static void pnv_php_unregister_one(struct device_node *dn)
return;
php_slot->state = PNV_PHP_STATE_OFFLINE;
- pnv_php_put_slot(php_slot);
pci_hp_deregister(&php_slot->slot);
+ pnv_php_put_slot(php_slot);
}
static void pnv_php_unregister(struct device_node *dn)