RCU Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking
@ 2020-01-14 16:25 madhuparnabhowmik04
  2020-02-14 17:26 ` Dennis Dalessandro
  0 siblings, 1 reply; 4+ messages in thread
From: madhuparnabhowmik04 @ 2020-01-14 16:25 UTC (permalink / raw)
  To: mike.marciniszyn, dennis.dalessandro, jgg, paulmck
  Cc: joel, frextrite, linux-kernel-mentees, rcu, linux-rdma,
	linux-kernel, Madhuparna Bhowmik

From: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>

Use built-in RCU and lock-checking for list_for_each_entry_rcu()
by passing the cond argument.

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
---
 drivers/infiniband/sw/rdmavt/mcast.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/sw/rdmavt/mcast.c b/drivers/infiniband/sw/rdmavt/mcast.c
index dd11c6fcd060..31c7f12c7665 100644
--- a/drivers/infiniband/sw/rdmavt/mcast.c
+++ b/drivers/infiniband/sw/rdmavt/mcast.c
@@ -224,7 +224,7 @@ 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, lockdep_is_held(&(ibp->lock))) {
 			if (p->qp == mqp->qp) {
 				ret = ESRCH;
 				goto bail;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking
  2020-01-14 16:25 [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking madhuparnabhowmik04
@ 2020-02-14 17:26 ` Dennis Dalessandro
  0 siblings, 0 replies; 4+ messages in thread
From: Dennis Dalessandro @ 2020-02-14 17:26 UTC (permalink / raw)
  To: madhuparnabhowmik04, mike.marciniszyn, jgg, paulmck
  Cc: joel, frextrite, linux-kernel-mentees, rcu, linux-rdma, linux-kernel

On 1/14/2020 11:25 AM, madhuparnabhowmik04@gmail.com wrote:
> From: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
> 
> Use built-in RCU and lock-checking for list_for_each_entry_rcu()
> by passing the cond argument.
> 
> Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
> ---
>   drivers/infiniband/sw/rdmavt/mcast.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/sw/rdmavt/mcast.c b/drivers/infiniband/sw/rdmavt/mcast.c
> index dd11c6fcd060..31c7f12c7665 100644
> --- a/drivers/infiniband/sw/rdmavt/mcast.c
> +++ b/drivers/infiniband/sw/rdmavt/mcast.c
> @@ -224,7 +224,7 @@ 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, lockdep_is_held(&(ibp->lock))) {
>   			if (p->qp == mqp->qp) {
>   				ret = ESRCH;
>   				goto bail;
> 

This one is OK. The lock is held and it is the correct one to use when 
updating the list.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking
@ 2020-01-07 19:31 madhuparnabhowmik04
  0 siblings, 0 replies; 4+ messages in thread
From: madhuparnabhowmik04 @ 2020-01-07 19:31 UTC (permalink / raw)
  To: dennis.dalessandro, mike.marciniszyn, dledford, paulmck
  Cc: rcu, joel, frextrite, linux-kernel-mentees, linux-rdma,
	linux-kernel, Madhuparna Bhowmik

From: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>

Use built-in RCU and lock-checking for list_for_each_entry_rcu()
by passing the cond argument.

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
---
 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..983cf6d06dfc 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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking
  2020-01-07 17:35 [PATCH 1/3] infiniband: hw: hfi1: verbs.c: " madhuparnabhowmik04
@ 2020-01-07 17:35 ` " madhuparnabhowmik04
  0 siblings, 0 replies; 4+ messages in thread
From: madhuparnabhowmik04 @ 2020-01-07 17:35 UTC (permalink / raw)
  To: dennis.dalessandro, mike.marciniszyn, dledford, paulmck
  Cc: rcu, joel, frextrite, linux-kernel-mentees, linux-rdma,
	linux-kernel, Madhuparna Bhowmik

From: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>

Use built-in RCU and lock-checking for list_for_each_entry_rcu()
by passing the cond argument.

Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik04@gmail.com>
---
 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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-14 16:25 [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: Use built-in RCU list checking madhuparnabhowmik04
2020-02-14 17:26 ` Dennis Dalessandro
  -- strict thread matches above, loose matches on Subject: below --
2020-01-07 19:31 madhuparnabhowmik04
2020-01-07 17:35 [PATCH 1/3] infiniband: hw: hfi1: verbs.c: " madhuparnabhowmik04
2020-01-07 17:35 ` [PATCH 3/3] infiniband: sw: rdmavt: mcast.c: " madhuparnabhowmik04

RCU Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/rcu/0 rcu/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 rcu rcu/ https://lore.kernel.org/rcu \
		rcu@vger.kernel.org
	public-inbox-index rcu

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.rcu


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git