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
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.
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 some_config .config
make mrproper
cp some_path/
make oldconfig
make dep
yields the same symbols.
(This test was done using the 686-smp config from image-i386- 2.4.27 -6 and examining the linux/modules/ root.ver)
kernel-
proc_mkdir symbol which is found in include/
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