On (01/30/16 09:43), Tom Herbert wrote: > That is not the only case, If a GRE TEB packet is ever received and > flow dissector is called for any reason (like skb_get_hash) there's > going to be problems-- and this doesn't require GRE to even be > configured on the host. > > I have a patch that changes the 32-bit accesses in flow_dissector to > use get_unaligned_be32. I don't have access to any machines that care > about alignment (only x86). Do you know if there is an alternate way > to test this other than running on architecture like Sparc?
I can help test this on sparc (would help if you send me any special config instructions for the GRE TEB case) , but the other way to test it would be something similar to this: --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -178,6 +178,8 @@ ip: ip_proto = iph->protocol; + WARN_ON_ONCE(!IS_ALIGNED(iph->saddr, 4)); + if (!dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS))