linux/drivers/pci/hotplug
Julia Lawall 4ba7d0f0eb drivers/pci/hotplug: Add missing pci_dev_get
pci_get_slot does a pci_dev_get, so pci_dev_put needs to be called in an
error case.

An alterative would be to move the test_and_set_bit before the call to
pci_get_slot.

The problem was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
local idexpression *n;
statement S1,S2;
expression E,E1;
expression *ptr != NULL;
type T,T1;
@@

(
if (!(n = pci_get_slot(...))) S1
|
n = pci_get_slot(...)
)
<... when != pci_dev_put(n)
    when != if (...) { <+... pci_dev_put(n) ...+> }
    when != true !n  || ...
    when != n = (T)E
    when != E = n
if (!n || ...) S2
...>
(
  return \(0\|<+...n...+>\|ptr\);
|
+ pci_dev_put(n);
return ...;
|
pci_dev_put(n);
|
n = (T1)E1
|
E1 = n
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-01-07 11:12:33 -08:00
..
acpi_pcihp.c PCI: add acpi_find_root_bridge_handle 2008-08-18 13:48:04 -07:00
acpiphp_core.c PCI hotplug: acpiphp wants a 64-bit _SUN 2008-12-16 13:26:46 -08:00
acpiphp_glue.c PCI hotplug: acpiphp wants a 64-bit _SUN 2008-12-16 13:26:46 -08:00
acpiphp_ibm.c PCI: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 11:12:23 -08:00
acpiphp.h PCI hotplug: acpiphp wants a 64-bit _SUN 2008-12-16 13:26:46 -08:00
cpci_hotplug_core.c PCI: cpci_hotplug: stop managing hotplug_slot->name 2008-10-22 16:42:39 -07:00
cpci_hotplug_pci.c PCI: cpci_hotplug: stop managing hotplug_slot->name 2008-10-22 16:42:39 -07:00
cpci_hotplug.h PCI: cpci_hotplug: stop managing hotplug_slot->name 2008-10-22 16:42:39 -07:00
cpcihp_generic.c PCI Hotplug: make cpcihp driver use modern apis 2008-04-20 21:46:56 -07:00
cpcihp_zt5550.c PCI: ZT5550 CPCI Hotplug driver fix 2007-05-02 19:02:40 -07:00
cpcihp_zt5550.h
cpqphp_core.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
cpqphp_ctrl.c PCI hotplug: fix logic in Compaq hotplug controller bus speed setup 2008-10-22 16:44:00 -07:00
cpqphp_nvram.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
cpqphp_nvram.h
cpqphp_pci.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
cpqphp_sysfs.c [PATCH] mark struct file_operations const 5 2007-02-12 09:48:45 -08:00
cpqphp.h PCI: cpqphp: stop managing hotplug_slot->name 2008-10-22 16:42:40 -07:00
fakephp.c drivers/pci/hotplug: Add missing pci_dev_get 2009-01-07 11:12:33 -08:00
ibmphp_core.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
ibmphp_ebda.c PCI: ibmphp: stop managing hotplug_slot->name 2008-10-22 16:42:41 -07:00
ibmphp_hpc.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
ibmphp_pci.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
ibmphp_res.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
ibmphp.h PCI: ibmphp: stop managing hotplug_slot->name 2008-10-22 16:42:41 -07:00
Kconfig PCI Hotplug: the ibm driver is not dependant on PCI_LEGACY 2008-04-20 21:46:57 -07:00
Makefile PCI: hotplug: Link fakephp last 2008-02-01 15:04:20 -08:00
pci_hotplug_core.c PCI: Hotplug core: remove 'name' 2008-10-22 16:42:43 -07:00
pciehp_core.c PCI: pciehp: fix unexpected power off with pciehp_force 2008-12-16 13:26:46 -08:00
pciehp_ctrl.c PCI hotplug: pciehp: remove unnecessary wait after turning power off 2009-01-07 11:12:21 -08:00
pciehp_hpc.c PCI hotplug: pciehp: message refinement 2008-10-23 14:47:39 -07:00
pciehp_pci.c PCI hotplug: pciehp: message refinement 2008-10-23 14:47:39 -07:00
pciehp.h PCI hotplug: pciehp: message refinement 2008-10-23 14:47:39 -07:00
pcihp_skeleton.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
rpadlpar_core.c powerpc/pci: Fix various pseries PCI hotplug issues 2008-11-06 09:31:52 +11:00
rpadlpar_sysfs.c PCI: introduce pci_slot 2008-06-10 14:37:03 -07:00
rpadlpar.h
rpaphp_core.c PCI hotplug: rpaphp: make debug var unique 2008-10-20 10:54:27 -07:00
rpaphp_pci.c PCI hotplug: rpaphp: make debug var unique 2008-10-20 10:54:27 -07:00
rpaphp_slot.c PCI: rpaphp: kmalloc/kfree slot->name directly 2008-10-22 16:42:42 -07:00
rpaphp.h PCI hotplug: rpaphp: make debug var unique 2008-10-20 10:54:27 -07:00
sgi_hotplug.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-10-23 10:20:36 -07:00
shpchp_core.c PCI hotplug: shpchp: message refinement 2008-10-23 16:14:00 -07:00
shpchp_ctrl.c PCI hotplug: shpchp: message refinement 2008-10-23 16:14:00 -07:00
shpchp_hpc.c PCI hotplug: shpchp: message refinement 2008-10-23 16:14:00 -07:00
shpchp_pci.c PCI hotplug: shpchp: message refinement 2008-10-23 16:14:00 -07:00
shpchp_sysfs.c SHPCHP: fix __must_check warnings 2006-09-26 17:43:53 -07:00
shpchp.h PCI hotplug: shpchp: message refinement 2008-10-23 16:14:00 -07:00