Most recent kernel where this bug did not occur: 2.4.34.5 Distribution: Debian (but custom built kernel) Hardware Environment: x86 Software Environment: Problem Description: Upon upgrading from a custom built 2.4.34.5 kernel to a 2.4.35.1 one, we've ran into a major problem with the bonding.o module. Upon loading this module, we now see an error something to the effect of "mode parameter does not appear in kernel". As such, the bonding module stays in default mode of round robin (which is not what we want) and then spews out the following (somewhat expected) error: bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details. even though we are calling it with the supposedly missing information: alias bond0 bonding options bond0 mode=active-backup miimon=100 primary=eth1 max_bonds=2 Now is where it gets interesting. If, instead of loading the bonding.o module built from 2.4.35.1, I load the module built from 2.4.34.5 into the running 2.4.35.1 kernel, the module works fine, no errors. Seeming to imply that nothing has changed in the core kernel itself, I diff'ed the working: linux-2.4.34.5/drivers/net/bonding with the not working linux-2.4.35.1/drivers/net/bonding The .c, .h Makefile and .depend are all the same. The .o's are different (as expected). The only files which were different were: -rw-r--r-- 1 root root 552 Jul 22 12:20 .bond_3ad.o.flags -rw-r--r-- 1 root root 552 Jul 22 12:20 .bond_alb.o.flags -rw-r--r-- 1 root root 554 Jul 22 12:20 .bond_main.o.flags -rw-r--r-- 1 root root 158 Jul 22 12:20 .bonding.o.flags In these files, the same difference in flags existed in each: Flag 2.4.34.5 2.4.35.1 (working) (not working) -fno-builtin-strpbrk No Yes -fno-unit-at-a-time Yes No The 2.4.35.1 version was built with the .config file from the 2.4.34.5 version. After building with "make xconfig (saving without changing); make dep; make-kpkg -us -uc buildpackage", the only difference in .config was that the new version contains the following comments: # CONFIG_SKGE is not set # CONFIG_SKY2 is not set Steps to reproduce:
Created attachment 12744 [details] .config file
Problem caused by lack of -fno-unit-at-a-time removed from 2.4.35.1 due to gcc-4.2.
-fno-unit-at-a-time option reintroduced in 2.4.35.2 to fix this particular problem.