diff options
author | Jesse Gross <jesse@nicira.com> | 2011-02-28 14:26:39 -0800 |
---|---|---|
committer | Jesse Gross <jesse@nicira.com> | 2011-03-03 12:12:53 -0800 |
commit | d76195db5a0780626e2742b184b86aeae60972bc (patch) | |
tree | 757441e017813c83dd57d3332017d0726680303f | |
parent | 46aef12ee5fcb028d20bac654c8a08cf993cfac8 (diff) |
datapath: Record upcall errors as lost packets.
It's possible to encounter a few different errors when preparing
to send a packet to userspace in queue_control_packet(). This
ensures that if we encounter one of these problems, the issue is
properly recorded as a lost packet.
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
-rw-r--r-- | datapath/datapath.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/datapath/datapath.c b/datapath/datapath.c index 733acad7..69b524c5 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -441,7 +441,11 @@ int dp_upcall(struct datapath *dp, struct sk_buff *skb, const struct dp_upcall_i } } - return queue_control_packets(dp, skb, upcall_info); + err = queue_control_packets(dp, skb, upcall_info); + if (err) + goto err; + + return 0; err_kfree_skb: kfree_skb(skb); |