vmxnet3: locking problems in xmit
PATCH 1/1 vmxnet3: locking problems in xmit
There were several paths that didn't release their locks.
Signed-off-by Dan Carpenter <[email protected]>
drivers/net/vmxnet3/vmxnet3_drv.c +3 -1
@@ -980,7 +980,7 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, } }else { tq->stats.drop_hdr_inspect_err++; - goto drop_pkt; + goto unlock_drop_pkt; }/* fill tx descs related to addr & len */
@@ -1052,6 +1052,8 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, hdr_too_big: tq->stats.drop_oversized_hdr++; +unlock_drop_pkt: +spin_unlock_irqrestore (&tq->tx_lock, flags); drop_pkt: tq->stats.drop_total++;dev_kfree_skb (skb);
Indeed, indeed. Thanks for catching that and fixing it!
Quoted 4 lines
There were several paths that didn't release their locks.
Signed-off-by Dan Carpenter <[email protected]>
Signed-off-by Bhavesh Davda <[email protected]>
Quoted 30 lines
drivers/net/vmxnet3/vmxnet3_drv.c +1
-1@@ -980,7 +980,7 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, } }else { tq->stats.drop_hdr_inspect_err++; - goto drop_pkt; + goto unlock_drop_pkt; }drivers/net/vmxnet3/vmxnet3_drv.c +2
-0/* fill tx descs related to addr & len */ @@ -1052,6 +1052,8 @@ vmxnet3_tq_xmit(struct sk_buff *skb, structvmxnet3_tx_queue *tq, hdr_too_big: tq->stats.drop_oversized_hdr++; +unlock_drop_pkt: +spin_unlock_irqrestore (&tq->tx_lock, flags); drop_pkt: tq->stats.drop_total++;
dev_kfree_skb(skb);
_______________________________________________
Pv-drivers mailing list
[email protected]
http://mailman2.vmware.com/mailman/listinfo/pv-drivers
From: Dan Carpenter <[email protected]>
Date: Mon, 20 Dec 2010 16:03:15 +0300
Quoted 3 lines
There were several paths that didn't release their locks.
Signed-off-by Dan Carpenter <[email protected]>
Applied.