PCI Hotplug: fakephp: fix deadlock... again
authorAlex Chiang <achiang@hp.com>
Fri, 5 Sep 2008 21:05:03 +0000 (14:05 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 9 Sep 2008 18:44:06 +0000 (11:44 -0700)
commit48902025af4da44dbbc0231061e542d6d40e712e
tree76560726e8345829b20cf4f604de8456336ba9cb
parent53bc88701be91e7f631ad31418b32392aa952e9b
PCI Hotplug: fakephp: fix deadlock... again

Commit fe99740cac117f208707488c03f3789cf4904957 (construct one
fakephp slot per PCI slot) introduced a regression, causing a
deadlock when removing a PCI device.

We also never actually removed the device from the PCI core.

So we:

- remove the device from the PCI core
- do not directly call remove_slot() to prevent deadlock

Yu Zhao reported and diagnosed this defect.

Signed-off-by: Alex Chiang <achiang@hp.com>
Acked-by: Yu Zhao <yu.zhao@intel.com>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/hotplug/fakephp.c