Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / drivers / infiniband / hw / mthca / mthca_cq.c
index 8030d6a..205854e 100644 (file)
@@ -39,8 +39,6 @@
 #include <linux/init.h>
 #include <linux/hardirq.h>
 
-#include <asm/io.h>
-
 #include <rdma/ib_pack.h>
 
 #include "mthca_dev.h"
@@ -212,11 +210,6 @@ static inline void update_cons_index(struct mthca_dev *dev, struct mthca_cq *cq,
                mthca_write64(doorbell,
                              dev->kar + MTHCA_CQ_DOORBELL,
                              MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
-               /*
-                * Make sure doorbells don't leak out of CQ spinlock
-                * and reach the HCA out of order:
-                */
-               mmiowb();
        }
 }
 
@@ -547,17 +540,8 @@ static inline int mthca_poll_one(struct mthca_dev *dev,
                entry->wr_id = srq->wrid[wqe_index];
                mthca_free_srq_wqe(srq, wqe);
        } else {
-               s32 wqe;
                wq = &(*cur_qp)->rq;
-               wqe = be32_to_cpu(cqe->wqe);
-               wqe_index = wqe >> wq->wqe_shift;
-               /*
-               * WQE addr == base - 1 might be reported in receive completion
-               * with error instead of (rq size - 1) by Sinai FW 1.0.800 and
-               * Arbel FW 5.1.400.  This bug should be fixed in later FW revs.
-               */
-               if (unlikely(wqe_index < 0))
-                       wqe_index = wq->max - 1;
+               wqe_index = be32_to_cpu(cqe->wqe) >> wq->wqe_shift;
                entry->wr_id = (*cur_qp)->wrid[wqe_index];
        }
 
@@ -829,7 +813,6 @@ int mthca_init_cq(struct mthca_dev *dev, int nent,
        spin_lock_init(&cq->lock);
        cq->refcount = 1;
        init_waitqueue_head(&cq->wait);
-       mutex_init(&cq->mutex);
 
        memset(cq_context, 0, sizeof *cq_context);
        cq_context->flags           = cpu_to_be32(MTHCA_CQ_STATUS_OK      |