X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fdatapath.c;h=e8b2976e0a07e334966bc6bfeab0f4b6278f3e36;hb=769f8ccd5fe0cbfbf85fb41c42e6c164e21352be;hp=32572c6f9d5a2bced7cdc005a3e4d0ec45cc1540;hpb=a31e0e31c6f319b50e0d285117c5d187804a7b2e;p=sliver-openvswitch.git diff --git a/datapath/datapath.c b/datapath/datapath.c index 32572c6f9..e8b2976e0 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -551,12 +551,11 @@ void dp_process_received_packet(struct dp_port *p, struct sk_buff *skb) OVS_CB(skb)->dp_port = p; /* Extract flow from 'skb' into 'key'. */ - if (flow_extract(skb, p ? p->port_no : ODPP_NONE, &key)) { - if (dp->drop_frags) { - kfree_skb(skb); - stats_counter_off = offsetof(struct dp_stats_percpu, n_frags); - goto out; - } + flow_extract(skb, p ? p->port_no : ODPP_NONE, &key); + if (OVS_CB(skb)->is_frag && dp->drop_frags) { + kfree_skb(skb); + stats_counter_off = offsetof(struct dp_stats_percpu, n_frags); + goto out; } /* Look up flow. */