diff options
Diffstat (limited to 'net/openvswitch/flow.c')
-rw-r--r-- | net/openvswitch/flow.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c index 57e07768c9d1..f54cf17ef7a8 100644 --- a/net/openvswitch/flow.c +++ b/net/openvswitch/flow.c | |||
@@ -276,10 +276,12 @@ static int parse_ipv6hdr(struct sk_buff *skb, struct sw_flow_key *key) | |||
276 | 276 | ||
277 | nexthdr = ipv6_find_hdr(skb, &payload_ofs, -1, &frag_off, &flags); | 277 | nexthdr = ipv6_find_hdr(skb, &payload_ofs, -1, &frag_off, &flags); |
278 | if (flags & IP6_FH_F_FRAG) { | 278 | if (flags & IP6_FH_F_FRAG) { |
279 | if (frag_off) | 279 | if (frag_off) { |
280 | key->ip.frag = OVS_FRAG_TYPE_LATER; | 280 | key->ip.frag = OVS_FRAG_TYPE_LATER; |
281 | else | 281 | key->ip.proto = nexthdr; |
282 | key->ip.frag = OVS_FRAG_TYPE_FIRST; | 282 | return 0; |
283 | } | ||
284 | key->ip.frag = OVS_FRAG_TYPE_FIRST; | ||
283 | } else { | 285 | } else { |
284 | key->ip.frag = OVS_FRAG_TYPE_NONE; | 286 | key->ip.frag = OVS_FRAG_TYPE_NONE; |
285 | } | 287 | } |