summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qib/qib_verbs_mcast.c
diff options
context:
space:
mode:
authorHarish Chegondi <harish.chegondi@intel.com>2016-01-22 12:56:02 -0800
committerDoug Ledford <dledford@redhat.com>2016-03-10 20:37:21 -0500
commitf24a6d4887668cc2925b1e908c72b96a2604a814 (patch)
treeae63779f41d5f2a5f7d6c8f64565f31e0365c30b /drivers/infiniband/hw/qib/qib_verbs_mcast.c
parentd2b8d4da1ca5052b72e043d2ce68157abf3f2d24 (diff)
downloadblackbird-op-linux-f24a6d4887668cc2925b1e908c72b96a2604a814.tar.gz
blackbird-op-linux-f24a6d4887668cc2925b1e908c72b96a2604a814.zip
IB/qib: Remove ibport and use rdmavt version
Remove several ibport members from qib and use the rdmavt version. rc_acks, rc_qacks, and rc_delayed_comp are defined as per CPU variables in rdmavt. Add support for these rdmavt per CPU variables which were not per cpu variables in qib ibport structure. Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Harish Chegondi <harish.chegondi@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_verbs_mcast.c')
-rw-r--r--drivers/infiniband/hw/qib/qib_verbs_mcast.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/infiniband/hw/qib/qib_verbs_mcast.c b/drivers/infiniband/hw/qib/qib_verbs_mcast.c
index 1c7af034bdae..c3d6535aab38 100644
--- a/drivers/infiniband/hw/qib/qib_verbs_mcast.c
+++ b/drivers/infiniband/hw/qib/qib_verbs_mcast.c
@@ -114,8 +114,8 @@ struct qib_mcast *qib_mcast_find(struct qib_ibport *ibp, union ib_gid *mgid)
unsigned long flags;
struct qib_mcast *mcast;
- spin_lock_irqsave(&ibp->lock, flags);
- n = ibp->mcast_tree.rb_node;
+ spin_lock_irqsave(&ibp->rvp.lock, flags);
+ n = ibp->rvp.mcast_tree.rb_node;
while (n) {
int ret;
@@ -129,11 +129,11 @@ struct qib_mcast *qib_mcast_find(struct qib_ibport *ibp, union ib_gid *mgid)
n = n->rb_right;
else {
atomic_inc(&mcast->refcount);
- spin_unlock_irqrestore(&ibp->lock, flags);
+ spin_unlock_irqrestore(&ibp->rvp.lock, flags);
goto bail;
}
}
- spin_unlock_irqrestore(&ibp->lock, flags);
+ spin_unlock_irqrestore(&ibp->rvp.lock, flags);
mcast = NULL;
@@ -153,11 +153,11 @@ bail:
static int qib_mcast_add(struct qib_ibdev *dev, struct qib_ibport *ibp,
struct qib_mcast *mcast, struct qib_mcast_qp *mqp)
{
- struct rb_node **n = &ibp->mcast_tree.rb_node;
+ struct rb_node **n = &ibp->rvp.mcast_tree.rb_node;
struct rb_node *pn = NULL;
int ret;
- spin_lock_irq(&ibp->lock);
+ spin_lock_irq(&ibp->rvp.lock);
while (*n) {
struct qib_mcast *tmcast;
@@ -212,12 +212,12 @@ static int qib_mcast_add(struct qib_ibdev *dev, struct qib_ibport *ibp,
atomic_inc(&mcast->refcount);
rb_link_node(&mcast->rb_node, pn, n);
- rb_insert_color(&mcast->rb_node, &ibp->mcast_tree);
+ rb_insert_color(&mcast->rb_node, &ibp->rvp.mcast_tree);
ret = 0;
bail:
- spin_unlock_irq(&ibp->lock);
+ spin_unlock_irq(&ibp->rvp.lock);
return ret;
}
@@ -294,13 +294,13 @@ int qib_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
if (ibqp->qp_num <= 1 || qp->state == IB_QPS_RESET)
return -EINVAL;
- spin_lock_irq(&ibp->lock);
+ spin_lock_irq(&ibp->rvp.lock);
/* Find the GID in the mcast table. */
- n = ibp->mcast_tree.rb_node;
+ n = ibp->rvp.mcast_tree.rb_node;
while (1) {
if (n == NULL) {
- spin_unlock_irq(&ibp->lock);
+ spin_unlock_irq(&ibp->rvp.lock);
return -EINVAL;
}
@@ -329,13 +329,13 @@ int qib_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
/* If this was the last attached QP, remove the GID too. */
if (list_empty(&mcast->qp_list)) {
- rb_erase(&mcast->rb_node, &ibp->mcast_tree);
+ rb_erase(&mcast->rb_node, &ibp->rvp.mcast_tree);
last = 1;
}
break;
}
- spin_unlock_irq(&ibp->lock);
+ spin_unlock_irq(&ibp->rvp.lock);
/* QP not attached */
if (!delp)
return -EINVAL;
@@ -359,5 +359,5 @@ int qib_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
int qib_mcast_tree_empty(struct qib_ibport *ibp)
{
- return ibp->mcast_tree.rb_node == NULL;
+ return !(ibp->rvp.mcast_tree.rb_node);
}
OpenPOWER on IntegriCloud