modprobe: Don't assume module absent if no /sys/module/<module>/initstate
commit1743de8a7c10c10f9f9e34255bf737515794219c
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>
Wed, 30 Sep 2009 16:23:38 +0000 (30 17:23 +0100)
committerAlan Jenkins <alan-jenkins@tuffmail.co.uk>
Thu, 1 Oct 2009 09:15:24 +0000 (1 10:15 +0100)
tree8bb70563898bfc60a64815b5db97655029959a3e
parent1a8d5a031e8d6c007af77a6102693fa188ea4bc3
modprobe: Don't assume module absent if no /sys/module/<module>/initstate

/sys/module/<module>/initstate only appeared in 2.6.20.  If it is not
present, we cannot tell whether the module has finished loading
succesfully.  In this case module_in_kernel() should return -1
(undefined).

Take care to to distinguish between "initstate disappeared because the
module was just unloaded" and "initstate is absent but the module is
still present".

"Fork bombing" side effect of this bug is described in [1].
A followup patch will add a fallback to /proc/modules.

1. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524940

Thanks to Modestas Vainius <modestas@vainius.eu> for explaining the
problem.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
modprobe.c