Let me restate in the form of a suggestion - instead of clearing
the name, you might want to look at how to get the state change
to work, so as to prevent this problem.  The author apparently
intended clearing the _INITED state flag to have somewhat the
effect as your clearing of the name...

-John

Brian F. G. Bidulock wrote:
There is a module loading bug in head/mod.c  When a module
is unregistered the f_name component is left alloing lis_findmod
to find it an lis_loadmod will attempt to lock a destroyed
semaphore.  The problem can be recreated by manually loading a
streams kernel module (modprobe), unloading it (rmmod) and then
demand loading it (e.g. I_PUSH).  The result is a kernel oops.

The patch below fixes the problem (but may break other things).

--brian

Index: head/mod.c
===================================================================
RCS file: /home/common/cvsroot/LiSnew/head/mod.c,v
retrieving revision 1.1.1.4
diff -U3 -r1.1.1.4 mod.c
--- head/mod.c 22 Nov 2003 23:01:43 -0000 1.1.1.4
+++ head/mod.c 15 Feb 2004 18:05:31 -0000
@@ -742,6 +742,7 @@
lis_up(&slot->f_sem) ;
lis_sem_destroy(&slot->f_sem) ;
slot->f_state &= ~LIS_MODSTATE_INITED ;
+ slot->f_name[0] = '\0';
printk("STREAMS module \"%s\" unregistered, id %d\n", name, id);



_______________________________________________ Linux-streams mailing list [EMAIL PROTECTED] http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to