From: Tom Herbert <[email protected]> Date: Wed, 13 May 2015 15:37:50 -0400
> On Wed, May 13, 2015 at 3:30 PM, David Miller <[email protected]> wrote: >> From: Tom Herbert <[email protected]> >> Date: Tue, 12 May 2015 08:22:58 -0700 >> >>> @@ -15,6 +15,13 @@ >>> * All the members, except thoff, are in network byte order. >>> */ >>> struct flow_keys { >>> + u16 thoff; >>> + u16 padding1; >>> +#define FLOW_KEYS_HASH_START_FIELD n_proto >>> + __be16 n_proto; >>> + u8 ip_proto; >>> + u8 padding; >>> + >> >> This padding works if everyone consistently zero initializes the whole >> key structure, but for whatever reason (performance, unintentional >> oversight, etc.) not all paths do. >> >> So, for example, inet_set_txhash() is going to have random crap in >> keys.padding, so the hashes computed are not stable for a given flow >> key tuple. >> >> That's just the first code path I found with this issue, there are >> probably several others. > > memset zero is in the second patch for inet_set_txhash and > ip6_set_txhash. I can respin so those are in the first patch. Yes, for bisectability you should probably do that. -- 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
