diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/openvswitch/flow.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c index c3294cebc4f2..0c98d406124b 100644 --- a/net/openvswitch/flow.c +++ b/net/openvswitch/flow.c | |||
@@ -484,7 +484,11 @@ static __be16 parse_ethertype(struct sk_buff *skb) | |||
484 | return htons(ETH_P_802_2); | 484 | return htons(ETH_P_802_2); |
485 | 485 | ||
486 | __skb_pull(skb, sizeof(struct llc_snap_hdr)); | 486 | __skb_pull(skb, sizeof(struct llc_snap_hdr)); |
487 | return llc->ethertype; | 487 | |
488 | if (ntohs(llc->ethertype) >= 1536) | ||
489 | return llc->ethertype; | ||
490 | |||
491 | return htons(ETH_P_802_2); | ||
488 | } | 492 | } |
489 | 493 | ||
490 | static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key, | 494 | static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key, |