提交 c97884b5 编写于 作者: B Brice Goglin 提交者: Jeff Garzik

myri10ge: Remove nonsensical limit in the tx done routine

Remove nonsensical limit in the tx done routine. Specifically,
the loop will always terminate after processing <= 1 rings worth
of frames, as the mcp index is not refetched, so the removed
conditional could never be true.
Signed-off-by: NBrice Goglin <brice@myri.com>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 be5ae973
...@@ -1060,7 +1060,6 @@ static inline void myri10ge_tx_done(struct myri10ge_priv *mgp, int mcp_index) ...@@ -1060,7 +1060,6 @@ static inline void myri10ge_tx_done(struct myri10ge_priv *mgp, int mcp_index)
struct myri10ge_tx_buf *tx = &mgp->tx; struct myri10ge_tx_buf *tx = &mgp->tx;
struct sk_buff *skb; struct sk_buff *skb;
int idx, len; int idx, len;
int limit = 0;
while (tx->pkt_done != mcp_index) { while (tx->pkt_done != mcp_index) {
idx = tx->done & tx->mask; idx = tx->done & tx->mask;
...@@ -1091,11 +1090,6 @@ static inline void myri10ge_tx_done(struct myri10ge_priv *mgp, int mcp_index) ...@@ -1091,11 +1090,6 @@ static inline void myri10ge_tx_done(struct myri10ge_priv *mgp, int mcp_index)
bus), len, bus), len,
PCI_DMA_TODEVICE); PCI_DMA_TODEVICE);
} }
/* limit potential for livelock by only handling
* 2 full tx rings per call */
if (unlikely(++limit > 2 * tx->mask))
break;
} }
/* start the queue if we've stopped it */ /* start the queue if we've stopped it */
if (netif_queue_stopped(mgp->dev) if (netif_queue_stopped(mgp->dev)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册