Re: 2.6.12-rc1-mm2

From: Patrick Mochel
Date: Thu Mar 24 2005 - 20:12:23 EST



On Thu, 24 Mar 2005, Andrew Morton wrote:

> Laurent Riffard <laurent.riffard@xxxxxxx> wrote:
> >
> > hello,
> >
> > Same kinds of problem here. It depends on the removed module. I mean:
> > "rmmod loop" or "rmmod pcspkr" works. But "rmmod snd_ens1371" or "rmmod
> > ohci1394" hangs.
> >
> > Sysrq-T when rmmoding snd_ens1371 :

<snip>

> It looks like we're getting stuck in the wait_for_completion() in the new
> klist_remove().

D'oh! It's getting hung while waiting to remove the current node from the
list (which it can't remove because it's being used). The patch below
should fix it.


Pat


===== drivers/base/dd.c 1.3 vs edited =====
--- 1.3/drivers/base/dd.c 2005-03-21 12:25:04 -08:00
+++ edited/drivers/base/dd.c 2005-03-24 16:55:21 -08:00
@@ -177,7 +177,7 @@

sysfs_remove_link(&drv->kobj, kobject_name(&dev->kobj));
sysfs_remove_link(&dev->kobj, "driver");
- klist_remove(&dev->knode_driver);
+ klist_del(&dev->knode_driver);

down(&dev->sem);
device_detach_shutdown(dev);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/