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

Reply via email to