From: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx> Use built-in RCU and lock-checking for list_for_each_entry_rcu() by passing the cond argument. Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@xxxxxxxxx> --- drivers/infiniband/sw/rdmavt/mcast.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/sw/rdmavt/mcast.c b/drivers/infiniband/sw/rdmavt/mcast.c index dd11c6fcd060..5fce375f22f4 100644 --- a/drivers/infiniband/sw/rdmavt/mcast.c +++ b/drivers/infiniband/sw/rdmavt/mcast.c @@ -224,7 +224,8 @@ static int rvt_mcast_add(struct rvt_dev_info *rdi, struct rvt_ibport *ibp, } /* Search the QP list to see if this is already there. */ - list_for_each_entry_rcu(p, &tmcast->qp_list, list) { + list_for_each_entry_rcu(p, &tmcast->qp_list, list + lock_is_held(&(ibp->lock).dep_map)) { if (p->qp == mqp->qp) { ret = ESRCH; goto bail; -- 2.17.1