Re: [net-2.6 PATCH] bonding: fix broken multicast with round-robin mode
From: Eric Dumazet <hidden>
Date: 2010-03-31 21:23:28
Le mercredi 31 mars 2010 à 14:00 -0700, David Miller a écrit :
Funny how going back in time gives us better diagnostic messages from the compiler :-) FWIW I also didn't get the warning, and that was with gcc-4.5 built from the gcc trunk just the other day. I suspect this is to do with a change to what warnings get enabled by default with the -W options we put in the cflags rather than gcc losing the ability to detect this case.
x86_64-unknown-linux-gcc -Wp,-MD,drivers/net/bonding/.bond_main.o.d -nostdinc -isystem /data/x86-64/lib/gcc/x86_64-unknown-linux/4.1.2/include -I/data/src/linux-2.6/arch/x86/include -Iinclude -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -Wdeclaration-after-statement -Wno-pointer-sign -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bond_main)" -D"KBUILD_MODNAME=KBUILD_STR(bonding)" -c -o drivers/net/bonding/.tmp_bond_main.o drivers/net/bonding/bond_main.c drivers/net/bonding/bond_main.c: In function ‘bond_xmit_roundrobin’: drivers/net/bonding/bond_main.c:4159: warning: comparison is always false due to limited range of data type while with gcc-4.4.2 (native compiler, no warning displayed) gcc -Wp,-MD,drivers/net/bonding/.bond_main.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.4.3/include -I/usr/src/git/linux-2.6/arch/x86/include -Iinclude -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bond_main)" -D"KBUILD_MODNAME=KBUILD_STR(bond_main)" -c -o drivers/net/bonding/.tmp_bond_main.o drivers/net/bonding/bond_main.c New compiler got these new options : -Wframe-larger-than=1024 -fno-strict-overflow -fno-dwarf2-cfi-asm -fconserve-stack