Linux/kerneld bug

Martin Buck (Martin-2.Buck@student.uni-ulm.de)
Thu, 29 Feb 1996 13:47:23 +0100


I just noticed that kerneld (or more probably the kernel) sometimes has
problems loading modules for char-devices (probably also block-devices, but
I didn't test them).

When a process opens a device file for which no module is currently loaded
and then the process receives a signal while the kerneld is loading the
module, the open() returns with ENODEV before the module is loaded. kerneld
will continue (and succeed) to load the module, but then the open() has
already returned and it's too late.

It's possible to work around this by blocking the offending signal before
the open() and unblocking it afterwards, but IMHO the kernel should block
all signals itself before telling kerneld to load the module.

BTW, this happens with Linux 1.3.57 and modutils 1.3.57.

--
/* Martin Buck                      E-Mail: martin-2.buck@student.uni-ulm.de */
/* Student of electrical engineering   WWW: http://www.uni-ulm.de/~s_mbuck1/ */
/* University of Ulm, Germany  Snail-Mail: Paukengasse 2, 89077 Ulm, Germany */
#include <disclaimer.h>            /* PGP Key available    MIME-Mail welcome */