aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/vmxnet3/vmxnet3_drv.c
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2010-12-19 22:03:15 -0500
committerDavid S. Miller <davem@davemloft.net>2010-12-20 13:44:25 -0500
commitf955e1415f381c7fa6ebe8630cd1fe5a694e8f4a (patch)
treeb5dc284644c8151c4fe2996a23e6f4d1d50a2285 /drivers/net/vmxnet3/vmxnet3_drv.c
parent6561a3b12d62ed5317e6ac32182d87a03f62c8dc (diff)
vmxnet3: locking problems in xmit
There were several paths that didn't release their locks. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Bhavesh Davda <bhavesh@vmware.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vmxnet3/vmxnet3_drv.c')
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 23154cf601e9..939e5466c75e 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -980,7 +980,7 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq,
980 } 980 }
981 } else { 981 } else {
982 tq->stats.drop_hdr_inspect_err++; 982 tq->stats.drop_hdr_inspect_err++;
983 goto drop_pkt; 983 goto unlock_drop_pkt;
984 } 984 }
985 985
986 /* fill tx descs related to addr & len */ 986 /* fill tx descs related to addr & len */
@@ -1052,6 +1052,8 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq,
1052 1052
1053hdr_too_big: 1053hdr_too_big:
1054 tq->stats.drop_oversized_hdr++; 1054 tq->stats.drop_oversized_hdr++;
1055unlock_drop_pkt:
1056 spin_unlock_irqrestore(&tq->tx_lock, flags);
1055drop_pkt: 1057drop_pkt:
1056 tq->stats.drop_total++; 1058 tq->stats.drop_total++;
1057 dev_kfree_skb(skb); 1059 dev_kfree_skb(skb);