Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d6ef7d68f6f51c5b9de01c542dab8b90067a9c27
Commit:     d6ef7d68f6f51c5b9de01c542dab8b90067a9c27
Parent:     aff9e39d97585486764572ab2f3bf5dfce18c660
Author:     Michael S. Tsirkin <[EMAIL PROTECTED]>
AuthorDate: Wed May 2 15:31:12 2007 +0300
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Sun May 6 21:18:11 2007 -0700

    IPoIB/cm: Don't crash if remote side uses one QP for both directions
    
    The IPoIB CM spec allows the use of a single connection in both
    active->passive and passive->active directions.  The current Linux
    code uses one connection for both directions, but if another node only
    uses one connection for both directions, we oops when we try to look
    up the passive connection.  Fix by checking that qp_context is
    non-NULL before dereferencing it.
    
    Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>
---
 drivers/infiniband/ulp/ipoib/ipoib_cm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c 
b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 7671741..1e27930 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -370,7 +370,7 @@ void ipoib_cm_handle_rx_wc(struct net_device *dev, struct 
ib_wc *wc)
 
        if (!likely(wr_id & IPOIB_CM_RX_UPDATE_MASK)) {
                p = wc->qp->qp_context;
-               if (time_after_eq(jiffies, p->jiffies + 
IPOIB_CM_RX_UPDATE_TIME)) {
+               if (p && time_after_eq(jiffies, p->jiffies + 
IPOIB_CM_RX_UPDATE_TIME)) {
                        spin_lock_irqsave(&priv->lock, flags);
                        p->jiffies = jiffies;
                        /* Move this entry to list head, but do
-
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