OpenCloudOS-Kernel/drivers/base
Roman Kagan b2d84f078a [PATCH] drivers/base/bus.c: fix iteration in driver_detach()
With 2.6.11 and 2.6.12-rc2 (and perhaps a few versions before) usb
drivers for multi-interface devices, which do
usb_driver_release_interface() in their disconnect(), make rmmod hang.

It turns out to be due to a bug in drivers/base/bus.c:driver_detach(),
that iterates over the list of attached devices with
list_for_each_safe() under an assumption that device_release_driver()
only releases the current device, while it may also call
device_release_driver() for other devices on the same list.

The following patch fixes it.  Please consider applying.

Signed-off-by: Roman Kagan <rkagan@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-05-04 23:44:38 -07:00
..
power Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
attribute_container.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
base.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bus.c [PATCH] drivers/base/bus.c: fix iteration in driver_detach() 2005-05-04 23:44:38 -07:00
class.c [PATCH] kobject/hotplug split - class core 2005-04-18 21:57:35 -07:00
class_simple.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
core.c [PATCH] Hotplug: Make dev->bus checking consistent 2005-05-04 23:44:37 -07:00
cpu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dmapool.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
driver.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
firmware.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
firmware_class.c [PATCH] add TIMEOUT to firmware_class hotplug event 2005-04-18 21:57:31 -07:00
init.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
interface.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
map.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
node.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
platform.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
sys.c [PATCH] pm_message_t: more fixes in common and i386 2005-04-16 15:25:24 -07:00
transport_class.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00