Message ID | 20140817101149.GA3692@ada |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Sun, 2014-08-17 at 13:12 +0300, Andreea-Cristina Bernat wrote: > The "rcu_dereference()" calls are used directly in conditions. > Since their return values are never dereferenced it is recommended to use > "rcu_access_pointer()" instead of "rcu_dereference()". > Therefore, this patch makes the replacements. > > The following Coccinelle semantic patch was used: > @@ > @@ > > ( > if( > (<+... > - rcu_dereference > + rcu_access_pointer > (...) > ...+>)) {...} > | > while( > (<+... > - rcu_dereference > + rcu_access_pointer > (...) > ...+>)) {...} > ) > > Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com> Acked-by: Michael Chan <mchan@broadcom.com> > --- > v2: Modified subject line from > "rcu: Replace rcu_dereference() with rcu_access_pointer()" > to > "cnic: Replace rcu_dereference() with rcu_access_pointer()", > noted by David Miller <davem@davemloft.net> > > drivers/net/ethernet/broadcom/cnic.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c > index 8244e2b..dad9cb7 100644 > --- a/drivers/net/ethernet/broadcom/cnic.c > +++ b/drivers/net/ethernet/broadcom/cnic.c > @@ -381,7 +381,7 @@ static int cnic_iscsi_nl_msg_recv(struct cnic_dev *dev, u32 msg_type, > break; > > rcu_read_lock(); > - if (!rcu_dereference(cp->ulp_ops[CNIC_ULP_L4])) { > + if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) { > rc = -ENODEV; > rcu_read_unlock(); > break; > @@ -525,7 +525,7 @@ int cnic_unregister_driver(int ulp_type) > list_for_each_entry(dev, &cnic_dev_list, list) { > struct cnic_local *cp = dev->cnic_priv; > > - if (rcu_dereference(cp->ulp_ops[ulp_type])) { > + if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { > pr_err("%s: Type %d still has devices registered\n", > __func__, ulp_type); > read_unlock(&cnic_dev_lock); > @@ -573,7 +573,7 @@ static int cnic_register_device(struct cnic_dev *dev, int ulp_type, > mutex_unlock(&cnic_lock); > return -EAGAIN; > } > - if (rcu_dereference(cp->ulp_ops[ulp_type])) { > + if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { > pr_err("%s: Type %d has already been registered to this device\n", > __func__, ulp_type); > mutex_unlock(&cnic_lock); -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Andreea-Cristina Bernat <bernat.ada@gmail.com> Date: Sun, 17 Aug 2014 13:12:09 +0300 > The "rcu_dereference()" calls are used directly in conditions. > Since their return values are never dereferenced it is recommended to use > "rcu_access_pointer()" instead of "rcu_dereference()". > Therefore, this patch makes the replacements. ... > Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 8244e2b..dad9cb7 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c @@ -381,7 +381,7 @@ static int cnic_iscsi_nl_msg_recv(struct cnic_dev *dev, u32 msg_type, break; rcu_read_lock(); - if (!rcu_dereference(cp->ulp_ops[CNIC_ULP_L4])) { + if (!rcu_access_pointer(cp->ulp_ops[CNIC_ULP_L4])) { rc = -ENODEV; rcu_read_unlock(); break; @@ -525,7 +525,7 @@ int cnic_unregister_driver(int ulp_type) list_for_each_entry(dev, &cnic_dev_list, list) { struct cnic_local *cp = dev->cnic_priv; - if (rcu_dereference(cp->ulp_ops[ulp_type])) { + if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { pr_err("%s: Type %d still has devices registered\n", __func__, ulp_type); read_unlock(&cnic_dev_lock); @@ -573,7 +573,7 @@ static int cnic_register_device(struct cnic_dev *dev, int ulp_type, mutex_unlock(&cnic_lock); return -EAGAIN; } - if (rcu_dereference(cp->ulp_ops[ulp_type])) { + if (rcu_access_pointer(cp->ulp_ops[ulp_type])) { pr_err("%s: Type %d has already been registered to this device\n", __func__, ulp_type); mutex_unlock(&cnic_lock);
The "rcu_dereference()" calls are used directly in conditions. Since their return values are never dereferenced it is recommended to use "rcu_access_pointer()" instead of "rcu_dereference()". Therefore, this patch makes the replacements. The following Coccinelle semantic patch was used: @@ @@ ( if( (<+... - rcu_dereference + rcu_access_pointer (...) ...+>)) {...} | while( (<+... - rcu_dereference + rcu_access_pointer (...) ...+>)) {...} ) Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com> --- v2: Modified subject line from "rcu: Replace rcu_dereference() with rcu_access_pointer()" to "cnic: Replace rcu_dereference() with rcu_access_pointer()", noted by David Miller <davem@davemloft.net> drivers/net/ethernet/broadcom/cnic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)