Re: Race condition in module load causing undefined symbols

Prarit Bhargava
2005-06-14T18:24:50Z

Colleagues,

(Copied and edited from a post I made on linux-hotplug-devel last month.)

I've privately emailed Steve with a quick-and-dirty solution for the problems he
was experiencing with the system boot. I wasn't sure if he was having the same
problems I've had with 2.6.12 and old packages but it looks like he was.

I'm surprised we haven't had more people on this list wondering about the
strange behaviour of their initrd/initramfs :) .

When I looked at the original output Steve had posted I noticed that it looked
like drivers were attempting to load at the same time and because of this he
eventually hit an oops. I (and an engineer from another company working on
another arch) have hit the same problem due to the requirements of our current work.

(Unfortunately, I'm more familiar with RedHat/Fedora than I am with other
distro's -- please bear with me.)

The issue is that David Howells posted a patch that changed the behaviour of
kallsyms/insmod/rmmod sometime ago. The patch *is correct* in what it does,
however, the patch requires that /sbin/sh must be aware of pid returns by wait().

http://lkml.org/lkml/2005/1/17/132

There are two fixes that I'm aware of, and depending on what you're doing they
are both "correct" (although in the case of developing in 2.6.12, IMO, you
_must_ do the latter).

The first fix is for the situation where you're developing for a specific
distribution. If this is the case, then you should back out the patch above and
continue moving forward.

The second fix, and again you must do this if you're developing 2.6.12, is to
*update the mkinitrd package* which has a new version of /bin/sh.

P.