[PATCH]: powerpc/pseries: bugfix: balance calls to pci_device_put
From: Linas Vepstas <hidden>
Date: 2006-04-06 20:41:44
Also in:
lkml
From: Linas Vepstas <hidden>
Date: 2006-04-06 20:41:44
Also in:
lkml
[PATCH]: powerpc/pseries: bugfix: balance calls to pci_device_put Repeated calls to eeh_remove_device() can result in multiple (and thus unbalanced) calls to pci_dev_put(). Make sure the pci_device_put() is called only once (since there was only one call to the matching pci_device_get()). Signed-off-by: Linas Vepstas <redacted> ---- arch/powerpc/platforms/pseries/eeh.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) Index: linux-2.6.17-rc1/arch/powerpc/platforms/pseries/eeh.c ===================================================================
--- linux-2.6.17-rc1.orig/arch/powerpc/platforms/pseries/eeh.c 2006-04-06 15:35:55.000000000 -0500
+++ linux-2.6.17-rc1/arch/powerpc/platforms/pseries/eeh.c 2006-04-06 15:38:04.968433419 -0500@@ -957,8 +957,10 @@ static void eeh_remove_device(struct pci pci_addr_cache_remove_device(dev); dn = pci_device_to_OF_node(dev); - PCI_DN(dn)->pcidev = NULL; - pci_dev_put (dev); + if (PCI_DN(dn)->pcidev) { + PCI_DN(dn)->pcidev = NULL; + pci_dev_put (dev); + } } void eeh_remove_bus_device(struct pci_dev *dev)