Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=48fe5e594c979177b7f20affd027be56e8ea2767
Commit:     48fe5e594c979177b7f20affd027be56e8ea2767
Parent:     3d68ea32611095c7e09409ac1b2a56da22fd5eb7
Author:     Krishna Kumar <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 15 10:35:37 2007 +0530
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 14:17:44 2008 -0800

    IPoIB: Remove redundant check of netif_queue_stopped() in xmit handler
    
    qdisc_run() now 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.
    This means that ipoib_start_xmit() no longer needs to test
    netif_queue_stopped(); the test was added to fix earlier kernels,
    where the networking stack did not guarantee that the xmit method of
    an LLTX driver would not be called after the queue was stopped, but
    current kernels do provide this guarantee.
    
    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]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/ulp/ipoib/ipoib_main.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c 
b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index d733045..a082466 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -672,16 +672,6 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct 
net_device *dev)
        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);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to