lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 21 Dec 2007 08:06:32 +0100 From: Eric Dumazet <dada1@...mosbay.com> To: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@...ux-ipv6.org> CC: davem@...emloft.net, netdev@...r.kernel.org Subject: Re: [TCP] IPV6 : Change a divide into a right shift in tcp_v6_send_ack() YOSHIFUJI Hideaki / 吉藤英明 a écrit : > In article <476B574E.80601@...mosbay.com> (at Fri, 21 Dec 2007 07:03:58 +0100), Eric Dumazet <dada1@...mosbay.com> says: > >> Because tot_len is signed in tcp_v6_send_ack(), tot_len/4 forces compiler >> to emit an integer divide, while we can help it to use a right shift, >> less expensive. > > Are you really sure? > At least, gcc-4.1.2-20061115 (debian) does not make any difference. > > And, IMHO, because shift for signed variable is fragile, so we should > avoid using it. > Yes I am sure, but maybe you are on x86_64 ? gcc-4.2.2 on x86 # objdump --disassemble net/ipv6/tcp_ipv6.o|grep -6 idiv b2: 66 8b 42 02 mov 0x2(%edx),%ax b6: ba 04 00 00 00 mov $0x4,%edx bb: 89 d7 mov %edx,%edi bd: 66 89 45 00 mov %ax,0x0(%ebp) c1: 89 d8 mov %ebx,%eax c3: 99 cltd c4: f7 ff idiv %edi c6: 88 c2 mov %al,%dl c8: 8a 45 0c mov 0xc(%ebp),%al cb: c1 e2 04 shl $0x4,%edx ce: 83 e0 0f and $0xf,%eax d1: 09 d0 or %edx,%eax d3: 88 45 0c mov %al,0xc(%ebp) If you think tot_len can be negative, I understand you can be against this patch. But I am sure it's allways > 0, even if I am a total ipv6 newbie :) Thank you -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists