From 58d01ad97d120506f70809b2302044ff34eb3c7c Mon Sep 17 00:00:00 2001 From: Pravin B Shelar Date: Tue, 8 Nov 2011 11:16:24 -0800 Subject: [PATCH] datapath: Fix vport tx_packets count. Signed-off-by: Pravin B Shelar Acked-by: Jesse Gross --- datapath/vport.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/datapath/vport.c b/datapath/vport.c index 6fe6042a7..a6b686c85 100644 --- a/datapath/vport.c +++ b/datapath/vport.c @@ -459,16 +459,18 @@ void vport_receive(struct vport *vport, struct sk_buff *skb) */ int vport_send(struct vport *vport, struct sk_buff *skb) { - struct vport_percpu_stats *stats; int sent = vport->ops->send(vport, skb); - stats = per_cpu_ptr(vport->percpu_stats, smp_processor_id()); + if (likely(sent)) { + struct vport_percpu_stats *stats; - write_seqcount_begin(&stats->seqlock); - stats->tx_packets++; - stats->tx_bytes += sent; - write_seqcount_end(&stats->seqlock); + stats = per_cpu_ptr(vport->percpu_stats, smp_processor_id()); + write_seqcount_begin(&stats->seqlock); + stats->tx_packets++; + stats->tx_bytes += sent; + write_seqcount_end(&stats->seqlock); + } return sent; } -- 2.43.0