Comment 12 for bug 11368

Revision history for this message
In , Simon Horman (horms) wrote : Re: Bug#284356: New release changed symbols thus rendering modules unloadable

On Mon, Dec 06, 2004 at 05:20:08PM +0100, Thomas Hood wrote:
>
> The original report (#284356) was submitted by Joey Hess and made no
> reference to proprietary modules. This affects modules shipped by
> Debian too.
>
> The problem is that a new Debian release of the "same" kernel (2.4.27-1)
> has changed symbol version suffixes, thus breaking modules that were
> compiled against earlier releases of this kernel.

Hi,

I think that I have discovered the cause of the problem.

It seems to be caused by the 093_tty_lockup.diff patch which was applied
to resolve CAN-2004-081, a security bug relating to race
conditions in the TTY subsystem. The patch was sourced from
Jason Baron from Red Hat. I have attached it for reference.

In testing I found that the problem lies in the following change
in include/linux/tty.h

-extern struct tty_ldisc ldiscs[];
+extern struct tty_ldisc tty_ldiscs[];

Backing out this change then runing something along the lines of
make mrproper
cp some_path/some_config .config
make oldconfig
make dep

yields the same symbols.

 (This test was done using the 686-smp config from
  kernel-image-i386-2.4.27 -6 and examining the
  proc_mkdir symbol which is found in include/linux/modules/root.ver)

Of course this does not compile because my change is bogus,
but I think it does establish the cause of the symbol problem.

I believe that there are serveral different fixes for this problem, and
in particular the one that was incoporated in 2.6 is somewhat different.
I am not sure if they cause the problem.

I am also not sure if we could mitigate this problem by renaming
tty_ldiscs to ldiscs gloably (and renaming any local ldiscs to
something else accordingly). I am also not entirely sure
why this makes genksyms produce a different checksum, perhaps
there is a smarter way around this.

Given that I a) spent last night on a plane and b) have been in the
office for 12 hours I am heading out now. Any ideas, tests are more than
welcome. I will spend some more time on this tomorrow.

--
Horms