From: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx> Use built-in RCU and lock checking for list_for_each_entry_rcu by passing cond argument to it. Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx> --- drivers/infiniband/hw/qib/qib_verbs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/qib/qib_verbs.c b/drivers/infiniband/hw/qib/qib_verbs.c index 33778d451b82..845ba888734e 100644 --- a/drivers/infiniband/hw/qib/qib_verbs.c +++ b/drivers/infiniband/hw/qib/qib_verbs.c @@ -329,7 +329,8 @@ void qib_ib_rcv(struct qib_ctxtdata *rcd, void *rhdr, void *data, u32 tlen) if (mcast == NULL) goto drop; this_cpu_inc(ibp->pmastats->n_multicast_rcv); - list_for_each_entry_rcu(p, &mcast->qp_list, list) + list_for_each_entry_rcu(p, &mcast->qp_list, list, + lock_is_held(&(ibp->rvp.lock).dep_map)) qib_qp_rcv(rcd, hdr, 1, data, tlen, p->qp); /* * Notify rvt_multicast_detach() if it is waiting for us -- 2.17.1