Replace void* with rxe_pool_entry* for some functions.

Change macro to inline function.

Signed-off-by: Maksym Planeta <[email protected]>
---
 drivers/infiniband/sw/rxe/rxe_comp.c  | 18 ++++----
 drivers/infiniband/sw/rxe/rxe_mcast.c | 20 ++++----
 drivers/infiniband/sw/rxe/rxe_mr.c    |  8 ++--
 drivers/infiniband/sw/rxe/rxe_net.c   |  6 +--
 drivers/infiniband/sw/rxe/rxe_pool.c  | 12 ++---
 drivers/infiniband/sw/rxe/rxe_pool.h  | 16 ++++---
 drivers/infiniband/sw/rxe/rxe_qp.c    | 32 ++++++-------
 drivers/infiniband/sw/rxe/rxe_recv.c  |  8 ++--
 drivers/infiniband/sw/rxe/rxe_req.c   |  8 ++--
 drivers/infiniband/sw/rxe/rxe_resp.c  | 22 ++++-----
 drivers/infiniband/sw/rxe/rxe_verbs.c | 66 +++++++++++++--------------
 11 files changed, 108 insertions(+), 108 deletions(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_comp.c 
b/drivers/infiniband/sw/rxe/rxe_comp.c
index 5f3a43cfeb63..bdeb288673f3 100644
--- a/drivers/infiniband/sw/rxe/rxe_comp.c
+++ b/drivers/infiniband/sw/rxe/rxe_comp.c
@@ -534,7 +534,7 @@ static void rxe_drain_resp_pkts(struct rxe_qp *qp, bool 
notify)
        struct rxe_send_wqe *wqe;
 
        while ((skb = skb_dequeue(&qp->resp_pkts))) {
-               rxe_drop_ref(qp);
+               rxe_drop_ref(&qp->pelem);
                kfree_skb(skb);
        }
 
@@ -557,7 +557,7 @@ int rxe_completer(void *arg)
        struct rxe_pkt_info *pkt = NULL;
        enum comp_state state;
 
-       rxe_add_ref(qp);
+       rxe_add_ref(&qp->pelem);
 
        if (!qp->valid || qp->req.state == QP_STATE_ERROR ||
            qp->req.state == QP_STATE_RESET) {
@@ -646,7 +646,7 @@ int rxe_completer(void *arg)
 
                case COMPST_DONE:
                        if (pkt) {
-                               rxe_drop_ref(pkt->qp);
+                               rxe_drop_ref(&pkt->qp->pelem);
                                kfree_skb(skb);
                                skb = NULL;
                        }
@@ -694,7 +694,7 @@ int rxe_completer(void *arg)
                        if (qp->comp.started_retry &&
                            !qp->comp.timeout_retry) {
                                if (pkt) {
-                                       rxe_drop_ref(pkt->qp);
+                                       rxe_drop_ref(&pkt->qp->pelem);
                                        kfree_skb(skb);
                                        skb = NULL;
                                }
@@ -723,7 +723,7 @@ int rxe_completer(void *arg)
                                }
 
                                if (pkt) {
-                                       rxe_drop_ref(pkt->qp);
+                                       rxe_drop_ref(&pkt->qp->pelem);
                                        kfree_skb(skb);
                                        skb = NULL;
                                }
@@ -748,7 +748,7 @@ int rxe_completer(void *arg)
                                mod_timer(&qp->rnr_nak_timer,
                                          jiffies + rnrnak_jiffies(aeth_syn(pkt)
                                                & ~AETH_TYPE_MASK));
-                               rxe_drop_ref(pkt->qp);
+                               rxe_drop_ref(&pkt->qp->pelem);
                                kfree_skb(skb);
                                skb = NULL;
                                goto exit;
@@ -766,7 +766,7 @@ int rxe_completer(void *arg)
                        rxe_qp_error(qp);
 
                        if (pkt) {
-                               rxe_drop_ref(pkt->qp);
+                               rxe_drop_ref(&pkt->qp->pelem);
                                kfree_skb(skb);
                                skb = NULL;
                        }
@@ -780,7 +780,7 @@ int rxe_completer(void *arg)
         * exit from the loop calling us
         */
        WARN_ON_ONCE(skb);
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
        return -EAGAIN;
 
 done:
@@ -788,6 +788,6 @@ int rxe_completer(void *arg)
         * us again to see if there is anything else to do
         */
        WARN_ON_ONCE(skb);
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
        return 0;
 }
diff --git a/drivers/infiniband/sw/rxe/rxe_mcast.c 
b/drivers/infiniband/sw/rxe/rxe_mcast.c
index 522a7942c56c..24ebc4ca1b99 100644
--- a/drivers/infiniband/sw/rxe/rxe_mcast.c
+++ b/drivers/infiniband/sw/rxe/rxe_mcast.c
@@ -59,7 +59,7 @@ int rxe_mcast_get_grp(struct rxe_dev *rxe, union ib_gid *mgid,
        spin_lock_init(&grp->mcg_lock);
        grp->rxe = rxe;
 
-       rxe_add_key(grp, mgid);
+       rxe_add_key(&grp->pelem, mgid);
 
        err = rxe_mcast_add(rxe, mgid);
        if (err)
@@ -70,7 +70,7 @@ int rxe_mcast_get_grp(struct rxe_dev *rxe, union ib_gid *mgid,
        return 0;
 
 err2:
-       rxe_drop_ref(grp);
+       rxe_drop_ref(&grp->pelem);
 err1:
        return err;
 }
@@ -103,7 +103,7 @@ int rxe_mcast_add_grp_elem(struct rxe_dev *rxe, struct 
rxe_qp *qp,
        }
 
        /* each qp holds a ref on the grp */
-       rxe_add_ref(grp);
+       rxe_add_ref(&grp->pelem);
 
        grp->num_qp++;
        elem->qp = qp;
@@ -140,16 +140,16 @@ int rxe_mcast_drop_grp_elem(struct rxe_dev *rxe, struct 
rxe_qp *qp,
 
                        spin_unlock_bh(&grp->mcg_lock);
                        spin_unlock_bh(&qp->grp_lock);
-                       rxe_drop_ref(elem);
-                       rxe_drop_ref(grp);      /* ref held by QP */
-                       rxe_drop_ref(grp);      /* ref from get_key */
+                       rxe_drop_ref(&elem->pelem);
+                       rxe_drop_ref(&grp->pelem);      /* ref held by QP */
+                       rxe_drop_ref(&grp->pelem);      /* ref from get_key */
                        return 0;
                }
        }
 
        spin_unlock_bh(&grp->mcg_lock);
        spin_unlock_bh(&qp->grp_lock);
-       rxe_drop_ref(grp);                      /* ref from get_key */
+       rxe_drop_ref(&grp->pelem);                      /* ref from get_key */
 err1:
        return -EINVAL;
 }
@@ -175,8 +175,8 @@ void rxe_drop_all_mcast_groups(struct rxe_qp *qp)
                list_del(&elem->qp_list);
                grp->num_qp--;
                spin_unlock_bh(&grp->mcg_lock);
-               rxe_drop_ref(grp);
-               rxe_drop_ref(elem);
+               rxe_drop_ref(&grp->pelem);
+               rxe_drop_ref(&elem->pelem);
        }
 }
 
@@ -185,6 +185,6 @@ void rxe_mc_cleanup(struct rxe_pool_entry *arg)
        struct rxe_mc_grp *grp = container_of(arg, typeof(*grp), pelem);
        struct rxe_dev *rxe = grp->rxe;
 
-       rxe_drop_key(grp);
+       rxe_drop_key(&grp->pelem);
        rxe_mcast_delete(rxe, &grp->mgid);
 }
diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c 
b/drivers/infiniband/sw/rxe/rxe_mr.c
index ea6a819b7167..441b01e30afa 100644
--- a/drivers/infiniband/sw/rxe/rxe_mr.c
+++ b/drivers/infiniband/sw/rxe/rxe_mr.c
@@ -470,7 +470,7 @@ int copy_data(
 
                if (offset >= sge->length) {
                        if (mem) {
-                               rxe_drop_ref(mem);
+                               rxe_drop_ref(&mem->pelem);
                                mem = NULL;
                        }
                        sge++;
@@ -515,13 +515,13 @@ int copy_data(
        dma->resid      = resid;
 
        if (mem)
-               rxe_drop_ref(mem);
+               rxe_drop_ref(&mem->pelem);
 
        return 0;
 
 err2:
        if (mem)
-               rxe_drop_ref(mem);
+               rxe_drop_ref(&mem->pelem);
 err1:
        return err;
 }
@@ -581,7 +581,7 @@ struct rxe_mem *lookup_mem(struct rxe_pd *pd, int access, 
u32 key,
                     mem->pd != pd ||
                     (access && !(access & mem->access)) ||
                     mem->state != RXE_MEM_STATE_VALID)) {
-               rxe_drop_ref(mem);
+               rxe_drop_ref(&mem->pelem);
                mem = NULL;
        }
 
diff --git a/drivers/infiniband/sw/rxe/rxe_net.c 
b/drivers/infiniband/sw/rxe/rxe_net.c
index e50f19fadcf9..f8c3604bc5ad 100644
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@ -416,7 +416,7 @@ static void rxe_skb_tx_dtor(struct sk_buff *skb)
                     skb_out < RXE_INFLIGHT_SKBS_PER_QP_LOW))
                rxe_run_task(&qp->req.task);
 
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
 }
 
 int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb)
@@ -426,7 +426,7 @@ int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb)
        skb->destructor = rxe_skb_tx_dtor;
        skb->sk = pkt->qp->sk->sk;
 
-       rxe_add_ref(pkt->qp);
+       rxe_add_ref(&pkt->qp->pelem);
        atomic_inc(&pkt->qp->skb_out);
 
        if (skb->protocol == htons(ETH_P_IP)) {
@@ -436,7 +436,7 @@ int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb)
        } else {
                pr_err("Unknown layer 3 protocol: %d\n", skb->protocol);
                atomic_dec(&pkt->qp->skb_out);
-               rxe_drop_ref(pkt->qp);
+               rxe_drop_ref(&pkt->qp->pelem);
                kfree_skb(skb);
                return -EINVAL;
        }
diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c 
b/drivers/infiniband/sw/rxe/rxe_pool.c
index fbcbac52290b..efa9bab01e02 100644
--- a/drivers/infiniband/sw/rxe/rxe_pool.c
+++ b/drivers/infiniband/sw/rxe/rxe_pool.c
@@ -338,9 +338,8 @@ static void insert_key(struct rxe_pool *pool, struct 
rxe_pool_entry *new)
        return;
 }
 
-void rxe_add_key(void *arg, void *key)
+void rxe_add_key(struct rxe_pool_entry *elem, void *key)
 {
-       struct rxe_pool_entry *elem = arg;
        struct rxe_pool *pool = elem->pool;
        unsigned long flags;
 
@@ -350,9 +349,8 @@ void rxe_add_key(void *arg, void *key)
        write_unlock_irqrestore(&pool->pool_lock, flags);
 }
 
-void rxe_drop_key(void *arg)
+void rxe_drop_key(struct rxe_pool_entry *elem)
 {
-       struct rxe_pool_entry *elem = arg;
        struct rxe_pool *pool = elem->pool;
        unsigned long flags;
 
@@ -361,9 +359,8 @@ void rxe_drop_key(void *arg)
        write_unlock_irqrestore(&pool->pool_lock, flags);
 }
 
-void rxe_add_index(void *arg)
+void rxe_add_index(struct rxe_pool_entry *elem)
 {
-       struct rxe_pool_entry *elem = arg;
        struct rxe_pool *pool = elem->pool;
        unsigned long flags;
 
@@ -373,9 +370,8 @@ void rxe_add_index(void *arg)
        write_unlock_irqrestore(&pool->pool_lock, flags);
 }
 
-void rxe_drop_index(void *arg)
+void rxe_drop_index(struct rxe_pool_entry *elem)
 {
-       struct rxe_pool_entry *elem = arg;
        struct rxe_pool *pool = elem->pool;
        unsigned long flags;
 
diff --git a/drivers/infiniband/sw/rxe/rxe_pool.h 
b/drivers/infiniband/sw/rxe/rxe_pool.h
index 2f2cff1cbe43..5c6a9429f541 100644
--- a/drivers/infiniband/sw/rxe/rxe_pool.h
+++ b/drivers/infiniband/sw/rxe/rxe_pool.h
@@ -138,18 +138,18 @@ int rxe_add_to_pool(struct rxe_pool *pool, struct 
rxe_pool_entry *elem);
 /* assign an index to an indexed object and insert object into
  *  pool's rb tree
  */
-void rxe_add_index(void *elem);
+void rxe_add_index(struct rxe_pool_entry *elem);
 
 /* drop an index and remove object from rb tree */
-void rxe_drop_index(void *elem);
+void rxe_drop_index(struct rxe_pool_entry *elem);
 
 /* assign a key to a keyed object and insert object into
  *  pool's rb tree
  */
-void rxe_add_key(void *elem, void *key);
+void rxe_add_key(struct rxe_pool_entry *elem, void *key);
 
 /* remove elem from rb tree */
-void rxe_drop_key(void *elem);
+void rxe_drop_key(struct rxe_pool_entry *elem);
 
 /* lookup an indexed object from index. takes a reference on object */
 void *rxe_pool_get_index(struct rxe_pool *pool, u32 index);
@@ -161,9 +161,13 @@ void *rxe_pool_get_key(struct rxe_pool *pool, void *key);
 void rxe_elem_release(struct kref *kref);
 
 /* take a reference on an object */
-#define rxe_add_ref(elem) kref_get(&(elem)->pelem.ref_cnt)
+static inline void rxe_add_ref(struct rxe_pool_entry *pelem) {
+       kref_get(&pelem->ref_cnt);
+}
 
 /* drop a reference on an object */
-#define rxe_drop_ref(elem) kref_put(&(elem)->pelem.ref_cnt, rxe_elem_release)
+static inline void rxe_drop_ref(struct rxe_pool_entry *pelem) {
+       kref_put(&pelem->ref_cnt, rxe_elem_release);
+}
 
 #endif /* RXE_POOL_H */
diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c 
b/drivers/infiniband/sw/rxe/rxe_qp.c
index 623f44f1d1d5..7cd929185581 100644
--- a/drivers/infiniband/sw/rxe/rxe_qp.c
+++ b/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -152,11 +152,11 @@ static void free_rd_atomic_resources(struct rxe_qp *qp)
 void free_rd_atomic_resource(struct rxe_qp *qp, struct resp_res *res)
 {
        if (res->type == RXE_ATOMIC_MASK) {
-               rxe_drop_ref(qp);
+               rxe_drop_ref(&qp->pelem);
                kfree_skb(res->atomic.skb);
        } else if (res->type == RXE_READ_MASK) {
                if (res->read.mr)
-                       rxe_drop_ref(res->read.mr);
+                       rxe_drop_ref(&res->read.mr->pelem);
        }
        res->type = 0;
 }
@@ -344,11 +344,11 @@ int rxe_qp_from_init(struct rxe_dev *rxe, struct rxe_qp 
*qp, struct rxe_pd *pd,
        struct rxe_cq *scq = to_rcq(init->send_cq);
        struct rxe_srq *srq = init->srq ? to_rsrq(init->srq) : NULL;
 
-       rxe_add_ref(pd);
-       rxe_add_ref(rcq);
-       rxe_add_ref(scq);
+       rxe_add_ref(&pd->pelem);
+       rxe_add_ref(&rcq->pelem);
+       rxe_add_ref(&scq->pelem);
        if (srq)
-               rxe_add_ref(srq);
+               rxe_add_ref(&srq->pelem);
 
        qp->pd                  = pd;
        qp->rcq                 = rcq;
@@ -374,10 +374,10 @@ int rxe_qp_from_init(struct rxe_dev *rxe, struct rxe_qp 
*qp, struct rxe_pd *pd,
        rxe_queue_cleanup(qp->sq.queue);
 err1:
        if (srq)
-               rxe_drop_ref(srq);
-       rxe_drop_ref(scq);
-       rxe_drop_ref(rcq);
-       rxe_drop_ref(pd);
+               rxe_drop_ref(&srq->pelem);
+       rxe_drop_ref(&scq->pelem);
+       rxe_drop_ref(&rcq->pelem);
+       rxe_drop_ref(&pd->pelem);
 
        return err;
 }
@@ -536,7 +536,7 @@ static void rxe_qp_reset(struct rxe_qp *qp)
        qp->resp.sent_psn_nak = 0;
 
        if (qp->resp.mr) {
-               rxe_drop_ref(qp->resp.mr);
+               rxe_drop_ref(&qp->resp.mr->pelem);
                qp->resp.mr = NULL;
        }
 
@@ -812,20 +812,20 @@ static void rxe_qp_do_cleanup(struct work_struct *work)
                rxe_queue_cleanup(qp->sq.queue);
 
        if (qp->srq)
-               rxe_drop_ref(qp->srq);
+               rxe_drop_ref(&qp->srq->pelem);
 
        if (qp->rq.queue)
                rxe_queue_cleanup(qp->rq.queue);
 
        if (qp->scq)
-               rxe_drop_ref(qp->scq);
+               rxe_drop_ref(&qp->scq->pelem);
        if (qp->rcq)
-               rxe_drop_ref(qp->rcq);
+               rxe_drop_ref(&qp->rcq->pelem);
        if (qp->pd)
-               rxe_drop_ref(qp->pd);
+               rxe_drop_ref(&qp->pd->pelem);
 
        if (qp->resp.mr) {
-               rxe_drop_ref(qp->resp.mr);
+               rxe_drop_ref(&qp->resp.mr->pelem);
                qp->resp.mr = NULL;
        }
 
diff --git a/drivers/infiniband/sw/rxe/rxe_recv.c 
b/drivers/infiniband/sw/rxe/rxe_recv.c
index f9a492ed900b..bd8dc133a722 100644
--- a/drivers/infiniband/sw/rxe/rxe_recv.c
+++ b/drivers/infiniband/sw/rxe/rxe_recv.c
@@ -261,7 +261,7 @@ static int hdr_check(struct rxe_pkt_info *pkt)
        return 0;
 
 err2:
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
 err1:
        return -EINVAL;
 }
@@ -316,13 +316,13 @@ static void rxe_rcv_mcast_pkt(struct rxe_dev *rxe, struct 
sk_buff *skb)
                        skb_get(skb);
 
                pkt->qp = qp;
-               rxe_add_ref(qp);
+               rxe_add_ref(&qp->pelem);
                rxe_rcv_pkt(pkt, skb);
        }
 
        spin_unlock_bh(&mcg->mcg_lock);
 
-       rxe_drop_ref(mcg);      /* drop ref from rxe_pool_get_key. */
+       rxe_drop_ref(&mcg->pelem);      /* drop ref from rxe_pool_get_key. */
 
 err1:
        kfree_skb(skb);
@@ -415,7 +415,7 @@ void rxe_rcv(struct sk_buff *skb)
 
 drop:
        if (pkt->qp)
-               rxe_drop_ref(pkt->qp);
+               rxe_drop_ref(&pkt->qp->pelem);
 
        kfree_skb(skb);
 }
diff --git a/drivers/infiniband/sw/rxe/rxe_req.c 
b/drivers/infiniband/sw/rxe/rxe_req.c
index a84c0407545b..0d018adbe512 100644
--- a/drivers/infiniband/sw/rxe/rxe_req.c
+++ b/drivers/infiniband/sw/rxe/rxe_req.c
@@ -594,7 +594,7 @@ int rxe_requester(void *arg)
        struct rxe_send_wqe rollback_wqe;
        u32 rollback_psn;
 
-       rxe_add_ref(qp);
+       rxe_add_ref(&qp->pelem);
 
 next_wqe:
        if (unlikely(!qp->valid || qp->req.state == QP_STATE_ERROR))
@@ -633,7 +633,7 @@ int rxe_requester(void *arg)
                                goto exit;
                        }
                        rmr->state = RXE_MEM_STATE_FREE;
-                       rxe_drop_ref(rmr);
+                       rxe_drop_ref(&rmr->pelem);
                        wqe->state = wqe_state_done;
                        wqe->status = IB_WC_SUCCESS;
                } else if (wqe->wr.opcode == IB_WR_REG_MR) {
@@ -702,7 +702,7 @@ int rxe_requester(void *arg)
                        wqe->state = wqe_state_done;
                        wqe->status = IB_WC_SUCCESS;
                        __rxe_do_task(&qp->comp.task);
-                       rxe_drop_ref(qp);
+                       rxe_drop_ref(&qp->pelem);
                        return 0;
                }
                payload = mtu;
@@ -753,6 +753,6 @@ int rxe_requester(void *arg)
        __rxe_do_task(&qp->comp.task);
 
 exit:
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
        return -EAGAIN;
 }
diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c 
b/drivers/infiniband/sw/rxe/rxe_resp.c
index d4b5535b8517..f038bae1bd70 100644
--- a/drivers/infiniband/sw/rxe/rxe_resp.c
+++ b/drivers/infiniband/sw/rxe/rxe_resp.c
@@ -118,7 +118,7 @@ static inline enum resp_states get_req(struct rxe_qp *qp,
 
        if (qp->resp.state == QP_STATE_ERROR) {
                while ((skb = skb_dequeue(&qp->req_pkts))) {
-                       rxe_drop_ref(qp);
+                       rxe_drop_ref(&qp->pelem);
                        kfree_skb(skb);
                }
 
@@ -494,7 +494,7 @@ static enum resp_states check_rkey(struct rxe_qp *qp,
 
 err:
        if (mem)
-               rxe_drop_ref(mem);
+               rxe_drop_ref(&mem->pelem);
        return state;
 }
 
@@ -910,7 +910,7 @@ static enum resp_states do_complete(struct rxe_qp *qp,
                                        return RESPST_ERROR;
                                }
                                rmr->state = RXE_MEM_STATE_FREE;
-                               rxe_drop_ref(rmr);
+                               rxe_drop_ref(&rmr->pelem);
                        }
 
                        wc->qp                  = &qp->ibqp;
@@ -980,7 +980,7 @@ static int send_atomic_ack(struct rxe_qp *qp, struct 
rxe_pkt_info *pkt,
                goto out;
        }
 
-       rxe_add_ref(qp);
+       rxe_add_ref(&qp->pelem);
 
        res = &qp->resp.resources[qp->resp.res_head];
        free_rd_atomic_resource(qp, res);
@@ -1000,7 +1000,7 @@ static int send_atomic_ack(struct rxe_qp *qp, struct 
rxe_pkt_info *pkt,
        rc = rxe_xmit_packet(qp, &ack_pkt, skb);
        if (rc) {
                pr_err_ratelimited("Failed sending ack\n");
-               rxe_drop_ref(qp);
+               rxe_drop_ref(&qp->pelem);
        }
 out:
        return rc;
@@ -1029,12 +1029,12 @@ static enum resp_states cleanup(struct rxe_qp *qp,
 
        if (pkt) {
                skb = skb_dequeue(&qp->req_pkts);
-               rxe_drop_ref(qp);
+               rxe_drop_ref(&qp->pelem);
                kfree_skb(skb);
        }
 
        if (qp->resp.mr) {
-               rxe_drop_ref(qp->resp.mr);
+               rxe_drop_ref(&qp->resp.mr->pelem);
                qp->resp.mr = NULL;
        }
 
@@ -1180,7 +1180,7 @@ static enum resp_states do_class_d1e_error(struct rxe_qp 
*qp)
                }
 
                if (qp->resp.mr) {
-                       rxe_drop_ref(qp->resp.mr);
+                       rxe_drop_ref(&qp->resp.mr->pelem);
                        qp->resp.mr = NULL;
                }
 
@@ -1193,7 +1193,7 @@ static void rxe_drain_req_pkts(struct rxe_qp *qp, bool 
notify)
        struct sk_buff *skb;
 
        while ((skb = skb_dequeue(&qp->req_pkts))) {
-               rxe_drop_ref(qp);
+               rxe_drop_ref(&qp->pelem);
                kfree_skb(skb);
        }
 
@@ -1212,7 +1212,7 @@ int rxe_responder(void *arg)
        struct rxe_pkt_info *pkt = NULL;
        int ret = 0;
 
-       rxe_add_ref(qp);
+       rxe_add_ref(&qp->pelem);
 
        qp->resp.aeth_syndrome = AETH_ACK_UNLIMITED;
 
@@ -1392,6 +1392,6 @@ int rxe_responder(void *arg)
 exit:
        ret = -EAGAIN;
 done:
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
        return ret;
 }
diff --git a/drivers/infiniband/sw/rxe/rxe_verbs.c 
b/drivers/infiniband/sw/rxe/rxe_verbs.c
index f6b25b409d12..545eff108070 100644
--- a/drivers/infiniband/sw/rxe/rxe_verbs.c
+++ b/drivers/infiniband/sw/rxe/rxe_verbs.c
@@ -154,7 +154,7 @@ static void rxe_dealloc_ucontext(struct ib_ucontext *ibuc)
 {
        struct rxe_ucontext *uc = to_ruc(ibuc);
 
-       rxe_drop_ref(uc);
+       rxe_drop_ref(&uc->pelem);
 }
 
 static int rxe_port_immutable(struct ib_device *dev, u8 port_num,
@@ -188,7 +188,7 @@ static void rxe_dealloc_pd(struct ib_pd *ibpd, struct 
ib_udata *udata)
 {
        struct rxe_pd *pd = to_rpd(ibpd);
 
-       rxe_drop_ref(pd);
+       rxe_drop_ref(&pd->pelem);
 }
 
 static int rxe_create_ah(struct ib_ah *ibah, struct rdma_ah_attr *attr,
@@ -239,7 +239,7 @@ static void rxe_destroy_ah(struct ib_ah *ibah, u32 flags)
 {
        struct rxe_ah *ah = to_rah(ibah);
 
-       rxe_drop_ref(ah);
+       rxe_drop_ref(&ah->pelem);
 }
 
 static int post_one_recv(struct rxe_rq *rq, const struct ib_recv_wr *ibwr)
@@ -312,7 +312,7 @@ static int rxe_create_srq(struct ib_srq *ibsrq, struct 
ib_srq_init_attr *init,
        if (err)
                goto err1;
 
-       rxe_add_ref(pd);
+       rxe_add_ref(&pd->pelem);
        srq->pd = pd;
 
        err = rxe_srq_from_init(rxe, srq, init, udata, uresp);
@@ -322,8 +322,8 @@ static int rxe_create_srq(struct ib_srq *ibsrq, struct 
ib_srq_init_attr *init,
        return 0;
 
 err2:
-       rxe_drop_ref(pd);
-       rxe_drop_ref(srq);
+       rxe_drop_ref(&pd->pelem);
+       rxe_drop_ref(&srq->pelem);
 err1:
        return err;
 }
@@ -380,8 +380,8 @@ static void rxe_destroy_srq(struct ib_srq *ibsrq, struct 
ib_udata *udata)
        if (srq->rq.queue)
                rxe_queue_cleanup(srq->rq.queue);
 
-       rxe_drop_ref(srq->pd);
-       rxe_drop_ref(srq);
+       rxe_drop_ref(&srq->pd->pelem);
+       rxe_drop_ref(&srq->pelem);
 }
 
 static int rxe_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr,
@@ -442,7 +442,7 @@ static struct ib_qp *rxe_create_qp(struct ib_pd *ibpd,
                qp->is_user = 1;
        }
 
-       rxe_add_index(qp);
+       rxe_add_index(&qp->pelem);
 
        err = rxe_qp_from_init(rxe, qp, pd, init, uresp, ibpd, udata);
        if (err)
@@ -451,9 +451,9 @@ static struct ib_qp *rxe_create_qp(struct ib_pd *ibpd,
        return &qp->ibqp;
 
 err3:
-       rxe_drop_index(qp);
+       rxe_drop_index(&qp->pelem);
 err2:
-       rxe_drop_ref(qp);
+       rxe_drop_ref(&qp->pelem);
 err1:
        return ERR_PTR(err);
 }
@@ -495,8 +495,8 @@ static int rxe_destroy_qp(struct ib_qp *ibqp, struct 
ib_udata *udata)
        struct rxe_qp *qp = to_rqp(ibqp);
 
        rxe_qp_destroy(qp);
-       rxe_drop_index(qp);
-       rxe_drop_ref(qp);
+       rxe_drop_index(&qp->pelem);
+       rxe_drop_ref(&qp->pelem);
        return 0;
 }
 
@@ -814,7 +814,7 @@ static void rxe_destroy_cq(struct ib_cq *ibcq, struct 
ib_udata *udata)
 
        rxe_cq_disable(cq);
 
-       rxe_drop_ref(cq);
+       rxe_drop_ref(&cq->pelem);
 }
 
 static int rxe_resize_cq(struct ib_cq *ibcq, int cqe, struct ib_udata *udata)
@@ -904,9 +904,9 @@ static struct ib_mr *rxe_get_dma_mr(struct ib_pd *ibpd, int 
access)
                goto err1;
        }
 
-       rxe_add_index(mr);
+       rxe_add_index(&mr->pelem);
 
-       rxe_add_ref(pd);
+       rxe_add_ref(&pd->pelem);
 
        err = rxe_mem_init_dma(pd, access, mr);
        if (err)
@@ -915,9 +915,9 @@ static struct ib_mr *rxe_get_dma_mr(struct ib_pd *ibpd, int 
access)
        return &mr->ibmr;
 
 err2:
-       rxe_drop_ref(pd);
-       rxe_drop_index(mr);
-       rxe_drop_ref(mr);
+       rxe_drop_ref(&pd->pelem);
+       rxe_drop_index(&mr->pelem);
+       rxe_drop_ref(&mr->pelem);
 err1:
        return ERR_PTR(err);
 }
@@ -939,9 +939,9 @@ static struct ib_mr *rxe_reg_user_mr(struct ib_pd *ibpd,
                goto err2;
        }
 
-       rxe_add_index(mr);
+       rxe_add_index(&mr->pelem);
 
-       rxe_add_ref(pd);
+       rxe_add_ref(&pd->pelem);
 
        err = rxe_mem_init_user(pd, start, length, iova,
                                access, udata, mr);
@@ -951,9 +951,9 @@ static struct ib_mr *rxe_reg_user_mr(struct ib_pd *ibpd,
        return &mr->ibmr;
 
 err3:
-       rxe_drop_ref(pd);
-       rxe_drop_index(mr);
-       rxe_drop_ref(mr);
+       rxe_drop_ref(&pd->pelem);
+       rxe_drop_index(&mr->pelem);
+       rxe_drop_ref(&mr->pelem);
 err2:
        return ERR_PTR(err);
 }
@@ -963,9 +963,9 @@ static int rxe_dereg_mr(struct ib_mr *ibmr, struct ib_udata 
*udata)
        struct rxe_mem *mr = to_rmr(ibmr);
 
        mr->state = RXE_MEM_STATE_ZOMBIE;
-       rxe_drop_ref(mr->pd);
-       rxe_drop_index(mr);
-       rxe_drop_ref(mr);
+       rxe_drop_ref(&mr->pd->pelem);
+       rxe_drop_index(&mr->pelem);
+       rxe_drop_ref(&mr->pelem);
        return 0;
 }
 
@@ -986,9 +986,9 @@ static struct ib_mr *rxe_alloc_mr(struct ib_pd *ibpd, enum 
ib_mr_type mr_type,
                goto err1;
        }
 
-       rxe_add_index(mr);
+       rxe_add_index(&mr->pelem);
 
-       rxe_add_ref(pd);
+       rxe_add_ref(&pd->pelem);
 
        err = rxe_mem_init_fast(pd, max_num_sg, mr);
        if (err)
@@ -997,9 +997,9 @@ static struct ib_mr *rxe_alloc_mr(struct ib_pd *ibpd, enum 
ib_mr_type mr_type,
        return &mr->ibmr;
 
 err2:
-       rxe_drop_ref(pd);
-       rxe_drop_index(mr);
-       rxe_drop_ref(mr);
+       rxe_drop_ref(&pd->pelem);
+       rxe_drop_index(&mr->pelem);
+       rxe_drop_ref(&mr->pelem);
 err1:
        return ERR_PTR(err);
 }
@@ -1057,7 +1057,7 @@ static int rxe_attach_mcast(struct ib_qp *ibqp, union 
ib_gid *mgid, u16 mlid)
 
        err = rxe_mcast_add_grp_elem(rxe, qp, grp);
 
-       rxe_drop_ref(grp);
+       rxe_drop_ref(&grp->pelem);
        return err;
 }
 
-- 
2.20.1

Reply via email to