[rdma-next,v1,4/4] IB/core: Prefix qp to event_handler_lock
diff mbox series

Message ID 20191212113024.336702-5-leon@kernel.org
State Accepted
Delegated to: Jason Gunthorpe
Headers show
Series
  • Let IB core distribute cache update events
Related show

Commit Message

Leon Romanovsky Dec. 12, 2019, 11:30 a.m. UTC
From: Parav Pandit <parav@mellanox.com>

Since event_handler_lock is accessed while executing QP's event handler,
prefix it with qp_ to avoid confusion with device's event_handler_list
and event_handler_rwsem.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
---
 drivers/infiniband/core/device.c |  2 +-
 drivers/infiniband/core/verbs.c  | 12 ++++++------
 include/rdma/ib_verbs.h          |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

--
2.20.1

Patch
diff mbox series

diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index c38b2b0b078a..90794238bae8 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -587,7 +587,7 @@  struct ib_device *_ib_alloc_device(size_t size)
 	rdma_init_coredev(&device->coredev, device, &init_net);

 	INIT_LIST_HEAD(&device->event_handler_list);
-	spin_lock_init(&device->event_handler_lock);
+	spin_lock_init(&device->qp_event_handler_lock);
 	init_rwsem(&device->event_handler_rwsem);
 	mutex_init(&device->unregistration_lock);
 	/*
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index dd765e176cdd..4606a5221ba5 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1053,11 +1053,11 @@  static void __ib_shared_qp_event_handler(struct ib_event *event, void *context)
 	struct ib_qp *qp = context;
 	unsigned long flags;

-	spin_lock_irqsave(&qp->device->event_handler_lock, flags);
+	spin_lock_irqsave(&qp->device->qp_event_handler_lock, flags);
 	list_for_each_entry(event->element.qp, &qp->open_list, open_list)
 		if (event->element.qp->event_handler)
 			event->element.qp->event_handler(event, event->element.qp->qp_context);
-	spin_unlock_irqrestore(&qp->device->event_handler_lock, flags);
+	spin_unlock_irqrestore(&qp->device->qp_event_handler_lock, flags);
 }

 static void __ib_insert_xrcd_qp(struct ib_xrcd *xrcd, struct ib_qp *qp)
@@ -1094,9 +1094,9 @@  static struct ib_qp *__ib_open_qp(struct ib_qp *real_qp,
 	qp->qp_num = real_qp->qp_num;
 	qp->qp_type = real_qp->qp_type;

-	spin_lock_irqsave(&real_qp->device->event_handler_lock, flags);
+	spin_lock_irqsave(&real_qp->device->qp_event_handler_lock, flags);
 	list_add(&qp->open_list, &real_qp->open_list);
-	spin_unlock_irqrestore(&real_qp->device->event_handler_lock, flags);
+	spin_unlock_irqrestore(&real_qp->device->qp_event_handler_lock, flags);

 	return qp;
 }
@@ -1824,9 +1824,9 @@  int ib_close_qp(struct ib_qp *qp)
 	if (real_qp == qp)
 		return -EINVAL;

-	spin_lock_irqsave(&real_qp->device->event_handler_lock, flags);
+	spin_lock_irqsave(&real_qp->device->qp_event_handler_lock, flags);
 	list_del(&qp->open_list);
-	spin_unlock_irqrestore(&real_qp->device->event_handler_lock, flags);
+	spin_unlock_irqrestore(&real_qp->device->qp_event_handler_lock, flags);

 	atomic_dec(&real_qp->usecnt);
 	if (qp->qp_sec)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index eaf9c948ff9b..e16a592e4536 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -2626,7 +2626,7 @@  struct ib_device {
 	struct rw_semaphore event_handler_rwsem;

 	/* Protects QP's event_handler calls and open_qp list */
-	spinlock_t event_handler_lock;
+	spinlock_t qp_event_handler_lock;

 	struct rw_semaphore	      client_data_rwsem;
 	struct xarray                 client_data;