diff options
Diffstat (limited to 'net/openvswitch/flow.c')
| -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 20605ecf100b..fe0e4215c73d 100644 --- a/net/openvswitch/flow.c +++ b/net/openvswitch/flow.c | |||
| @@ -482,7 +482,11 @@ static __be16 parse_ethertype(struct sk_buff *skb) | |||
| 482 | return htons(ETH_P_802_2); | 482 | return htons(ETH_P_802_2); |
| 483 | 483 | ||
| 484 | __skb_pull(skb, sizeof(struct llc_snap_hdr)); | 484 | __skb_pull(skb, sizeof(struct llc_snap_hdr)); |
| 485 | return llc->ethertype; | 485 | |
| 486 | if (ntohs(llc->ethertype) >= 1536) | ||
| 487 | return llc->ethertype; | ||
| 488 | |||
| 489 | return htons(ETH_P_802_2); | ||
| 486 | } | 490 | } |
| 487 | 491 | ||
| 488 | static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key, | 492 | static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key, |
