qdisc_run() tests for queue_stopped() before calling __qdisc_run(),
and the same check is done in every iteration of __qdisc_run(), so
another check is not required in the driver xmit.
To validate, I put a debug in the TX_BUSY path which never hit with
64 threads running overnight exercising this code a few 100 million
times.
Signed-off-by: Krishna Kumar <[EMAIL PROTECTED]>
---
ipoib_main.c | 10 ----------
1 files changed, 10 deletions(-)
diff -ruNp 1/drivers/infiniband/ulp/ipoib/ipoib_main.c
2/drivers/infiniband/ulp/ipoib/ipoib_main.c
--- 1/drivers/infiniband/ulp/ipoib/ipoib_main.c 2007-11-14 14:07:06.000000000
+0530
+++ 2/drivers/infiniband/ulp/ipoib/ipoib_main.c 2007-11-14 14:07:35.000000000
+0530
@@ -666,16 +666,6 @@ static int ipoib_start_xmit(struct sk_bu
if (unlikely(!spin_trylock_irqsave(&priv->tx_lock, flags)))
return NETDEV_TX_LOCKED;
- /*
- * Check if our queue is stopped. Since we have the LLTX bit
- * set, we can't rely on netif_stop_queue() preventing our
- * xmit function from being called with a full queue.
- */
- if (unlikely(netif_queue_stopped(dev))) {
- spin_unlock_irqrestore(&priv->tx_lock, flags);
- return NETDEV_TX_BUSY;
- }
-
if (likely(skb->dst && skb->dst->neighbour)) {
if (unlikely(!*to_ipoib_neigh(skb->dst->neighbour))) {
ipoib_path_lookup(skb, dev);
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general