diff options
author | Roman Kagan <rkagan@mail.ru> | 2005-04-13 21:40:17 +0400 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-05-04 23:44:38 -0700 |
commit | b2d84f078a8be40f5ae3b4d2ac001e2a7f45fe4f (patch) | |
tree | 173f941991f1b68da820e9926a3b7ebdd3a2c8b9 /kernel/audit.c | |
parent | 177a4324944478f2799ce4ede2797cb0f602f274 (diff) | |
download | op-kernel-dev-b2d84f078a8be40f5ae3b4d2ac001e2a7f45fe4f.zip op-kernel-dev-b2d84f078a8be40f5ae3b4d2ac001e2a7f45fe4f.tar.gz |
[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>
Diffstat (limited to 'kernel/audit.c')
0 files changed, 0 insertions, 0 deletions