[BusyBox 0000975]: Simultaneous modprobes on aliases which reference the same module fail
bugs at busybox.net
bugs at busybox.net
Fri Jul 28 16:17:30 UTC 2006
A NOTE has been added to this issue.
======================================================================
http://busybox.net/bugs/view.php?id=975
======================================================================
Reported By: anthony
Assigned To: BusyBox
======================================================================
Project: BusyBox
Issue ID: 975
Category: Kernel Module Support
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
======================================================================
Date Submitted: 07-28-2006 06:03 PDT
Last Modified: 07-28-2006 09:17 PDT
======================================================================
Summary: Simultaneous modprobes on aliases which reference
the same module fail
Description:
I have a module uhci-hcd
There is a reference in modules.alias which looks like:
alias pci:v*d*sv*sd*bc0Csc03i00* uhci-hcd
If the uhci_module is not loaded and I enter:
modprobe pci:v00008086d00002659sv00001028sd00000182bc0Csc03i00
It succeeds
If the uhci_module is loaded and I enter:
modprobe pci:v00008086d00002659sv00001028sd00000182bc0Csc03i00
It succeeds
If the uhci_module is not loaded and I enter:
modprobe pci:v00008086d00002659sv00001028sd00000182bc0Csc03i00 &
modprobe pci:v00008086d00002659sv00001028sd00000182bc0Csc03i00 &
One modprobe succeeds
One modprobe fails with:
insmod: cannot insert '.../uhci-hcd.ko': File exists (-1)
While the example above is somewhat contrived, it simulates how udev
operates when it tries to populate /dev during boot in a case where a
number of devices need the same module and it's not loaded (udev with the
RUN+= directive fires off a backgrounded modprobe for each device).
======================================================================
----------------------------------------------------------------------
integrator - 07-28-06 09:17
----------------------------------------------------------------------
We have a race here when two modprobe run in //, and one is loading a
module on which depends on a module loaded by the other.
Then two insmod are spawned which try to load the same module in turn.
Once the first has suceeded, the second fails because the module is
already loaded.
Thus, one of the modprobe fails, but it has no way (for now I hope) to
know why.
The most obvious and _incorrect_ way to fix this would be to ignore
loading errors, but that would be only a workaround.
Lemme think about it over the WE...
Issue History
Date Modified Username Field Change
======================================================================
07-28-06 06:03 anthony New Issue
07-28-06 06:03 anthony Status new => assigned
07-28-06 06:03 anthony Assigned To => BusyBox
07-28-06 09:17 integrator Note Added: 0001550
======================================================================
More information about the busybox-cvs
mailing list