diff options
| -rw-r--r-- | net/openvswitch/datapath.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 35d866f036e7..91d66b7e64ac 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c | |||
| @@ -265,8 +265,11 @@ void ovs_dp_process_received_packet(struct vport *p, struct sk_buff *skb) | |||
| 265 | upcall.key = &key; | 265 | upcall.key = &key; |
| 266 | upcall.userdata = NULL; | 266 | upcall.userdata = NULL; |
| 267 | upcall.portid = ovs_vport_find_upcall_portid(p, skb); | 267 | upcall.portid = ovs_vport_find_upcall_portid(p, skb); |
| 268 | ovs_dp_upcall(dp, skb, &upcall); | 268 | error = ovs_dp_upcall(dp, skb, &upcall); |
| 269 | consume_skb(skb); | 269 | if (unlikely(error)) |
| 270 | kfree_skb(skb); | ||
| 271 | else | ||
| 272 | consume_skb(skb); | ||
| 270 | stats_counter = &stats->n_missed; | 273 | stats_counter = &stats->n_missed; |
| 271 | goto out; | 274 | goto out; |
| 272 | } | 275 | } |
