2018-03-07 08:48:57

by Simon Guo

[permalink] [raw]
Subject: [PATCH] PCI/hotplug: ppc: correct a php_slot usage after free

From: Simon Guo <[email protected]>

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 <[email protected]>
---
drivers/pci/hotplug/pnv_php.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
index 74f6a17..eb60692e 100644
--- a/drivers/pci/hotplug/pnv_php.c
+++ b/drivers/pci/hotplug/pnv_php.c
@@ -930,8 +930,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)
--
1.8.3.1



2018-03-14 09:31:39

by Michael Ellerman

[permalink] [raw]
Subject: Re: PCI/hotplug: ppc: correct a php_slot usage after free

On Wed, 2018-03-07 at 08:46:04 UTC, [email protected] wrote:
> From: Simon Guo <[email protected]>
>
> 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 <[email protected]>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/97c6f25d5828b497e3e802b1f7c701

cheers