On Tue, 26 Sep 2006, ext Thomas Graf wrote: > You're right, 0x80000000 - 1 is already positive. Ignore the patch.
basic_change() won't work without this patch if we compile the kernel with the GCC version in RHEL5... gcc version 4.1.1 20060817 (Red Hat 4.1.1-18) which optimizes the code like this (objdump -S inttest.c) ... int main() { 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp int i = 0x80000000; do { printf(KERN_ERR "in do %d\n", i); 3: 68 00 00 00 80 push $0x80000000 8: 68 00 00 00 00 push $0x0 d: e8 fc ff ff ff call e <main+0xe> } while (--i > 0); printf(KERN_ERR "out of do %d\n", i); 12: 68 00 00 00 80 push $0x80000000 17: 68 0a 00 00 00 push $0xa 1c: e8 fc ff ff ff call 1d <main+0x1d> return 0; } 21: 31 c0 xor %eax,%eax 23: c9 leave 24: c3 ret # ./inttest in do -2147483648 out of do -2147483648 gcc -m32 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Wstrict-prototypes -Wundef -Werror-implicit-function-declaration -fno-stack-protector -Os -fno-omit-frame-pointer -fno-optimize-sibling-calls -fasynchronous-unwind-tables -g -pipe -msoft-float -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -mtune=generic -mregparm=3 -ffreestanding -Wdeclaration-after-statement -Wno-pointer-sign -c -o inttest.o inttest.c So I would suggest to apply this patch to be compatible with the GCC version in RHEL5, and simply to make code clearer (to the intended idea). --KimN - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html