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
| ||
|
Message-Id: <20100425.004842.225645379.davem@davemloft.net> Date: Sun, 25 Apr 2010 00:48:42 -0700 (PDT) From: David Miller <davem@...emloft.net> To: xiaosuo@...il.com Cc: therbert@...gle.com, eric.dumazet@...il.com, netdev@...r.kernel.org Subject: Re: [PATCH v3] rps: optimize rps_get_cpu() From: David Miller <davem@...emloft.net> Date: Sun, 25 Apr 2010 00:38:34 -0700 (PDT) > From: Changli Gao <xiaosuo@...il.com> > Date: Sun, 25 Apr 2010 14:48:49 +0800 > >> Are they always aligned to 64-bit boundary? I don't think so. > > If not than TCP stack should be crashing for past 15 years. Nevermind, currently we only depend upon the addresses in struct sock being 64-bit aligned not the protocol headers. It shouldn't be hard to make the protocol header addresses 64-bit aligned too. Simply setting the default NET_IP_ALIGN to '6' instead of '2' ought to be sufficient. skb->data upon alloc_skb() is 64-bit aligned. So if we skb_reserve(NET_IP_ALIGN '6'), then we have the ethernet header (14 bytes). And since 'saddr' is 12 bytes into struct iphdr it will be (6 + 14 + 12) == 32 bytes in from the original 64-bit aligned skb->data. Therefore, since skb->data is 64-bit aligned, skb->data plus a multiple of 8 (which 32 is) will also be 64-bit aligned, and that means iph->saddr will be 64-bit aligned. -- 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