projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6561a3b
)
vmxnet3: locking problems in xmit
author
Dan Carpenter
<
[email protected]
>
Mon, 20 Dec 2010 03:03:15 +0000
(
03:03
+0000)
committer
David S. Miller
<
[email protected]
>
Mon, 20 Dec 2010 18:44:25 +0000
(10:44 -0800)
There were several paths that didn't release their locks.
Signed-off-by: Dan Carpenter <
[email protected]
>
Signed-off-by: Bhavesh Davda <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
drivers/net/vmxnet3/vmxnet3_drv.c
patch
|
blob
|
history
diff --git
a/drivers/net/vmxnet3/vmxnet3_drv.c
b/drivers/net/vmxnet3/vmxnet3_drv.c
index 23154cf601e9e2e36ddd8fe60ca2fcfcf709cf84..939e5466c75ed28937176f204080ce8ddcec21bc 100644
(file)
--- 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,
}
} 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);