kernel_optimize_test/drivers/acpi
Alex Chiang 72800360fd PCI: pci_slot: grab refcount on slot's bus
If a logical hot unplug (remove) is performed on a physical PCI slot's
parent bridge, and then pci_slot is unloaded, we will encounter an oops:

  [<ffffffff803a788a>] kobject_release+0x9a/0x290
  [<ffffffff803a77f0>] ? kobject_release+0x0/0x290
  [<ffffffff803a8ce7>] kref_put+0x37/0x80
  [<ffffffff803a76f7>] kobject_put+0x27/0x60
  [<ffffffff803bebcc>] ? pci_destroy_slot+0x3c/0xc0
  [<ffffffff803bebd5>] pci_destroy_slot+0x45/0xc0
  [<ffffffffa000f05c>] acpi_pci_slot_remove+0x5c/0x91 [pci_slot]
  [<ffffffff8040064b>] acpi_pci_unregister_driver+0x4b/0x62
  [<ffffffffa000f5c8>] acpi_pci_slot_exit+0x10/0x12 [pci_slot]
  [<ffffffff80276ce1>] sys_delete_module+0x161/0x250

We need to grab a reference to the parent PCI bus, which will pin
the bus and prevent it from being released until pci_slot is unloaded.

Cc: lenb@kernel.org
Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Tested-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Reported-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-04-06 11:31:14 -07:00
..
acpica Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
ac.c
acpi_memhotplug.c
battery.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
blacklist.c
bus.c
button.c ACPI: button: use .notify method instead of installing handler directly 2009-04-05 02:25:07 -04:00
cm_sbs.c
container.c
debug.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
dock.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
ec.c Merge branch 'constify' into release 2009-04-05 01:51:16 -04:00
event.c
fan.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
glue.c
internal.h
Kconfig
Makefile Merge branch 'async-battery' into release 2009-04-05 01:48:46 -04:00
numa.c
osl.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
pci_bind.c
pci_irq.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
pci_link.c
pci_root.c
pci_slot.c PCI: pci_slot: grab refcount on slot's bus 2009-04-06 11:31:14 -07:00
power.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
proc.c
processor_core.c ACPI: processor: use .notify method instead of installing handler directly 2009-04-05 02:25:07 -04:00
processor_idle.c
processor_perflib.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
processor_thermal.c Merge branch 'constify' into release 2009-04-05 01:51:16 -04:00
processor_throttling.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
reboot.c
sbs.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
sbshc.c
sbshc.h
scan.c ACPI: support acpi_device_ops .notify methods 2009-04-05 02:25:07 -04:00
sleep.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
sleep.h
system.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
tables.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
thermal.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
utils.c
video_detect.c
video.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
wakeup.c