ipoib: ipoib_main: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
PATCH 1/1 ipoib: ipoib_main: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
According to RCU_INIT_POINTER()'s block comment 3.a, it can be used if
"3. The referenced data structure has already been exposed to readers either
at compile time or via rcu_assign_pointer() -and-
a. You have not made -any- reader-visible changes to this structure since
then".
These cases fulfill the conditions above because between the rcu_dereference_protected() calls and the rcu_assign_pointer() calls there are no updates of those values.
Therefore, this patch makes the replacements.
The following Coccinelle semantic patch was used:
@@
@@
- rcu_assign_pointer
+ RCU_INIT_POINTER
(...,
(
rtnl_dereference(...)
|
rcu_dereference_protected(...)
) )
Signed-off-by Andreea-Cristina Bernat <[email protected]>
--- drivers/infiniband/ulp/ipoib/ipoib_main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/infiniband/ulp/ipoib/ipoib_main.c +5 -5
@@ -929,7 +929,7 @@ static void __ipoib_reap_neigh(struct ipoib_dev_priv *priv) lockdep_is_held(&priv->lock))) != NULL) {/* was the neigh idle for two GC periods */ if (time_after (neigh_obsolete, neigh->alive)) { -rcu_assign_pointer (*np, +RCU_INIT_POINTER (*np,rcu_dereference_protected (neigh->hnext,lockdep_is_held (&priv->lock)));/* remove from path/mc list */
@@ -1024,7 +1024,7 @@ struct ipoib_neigh *ipoib_neigh_alloc(u8 *daddr,atomic_inc (&neigh->refcnt); neigh->alive = jiffies;/* put in hash */ -rcu_assign_pointer (neigh->hnext, +RCU_INIT_POINTER (neigh->hnext,rcu_dereference_protected (htbl->buckets[hash_val],lockdep_is_held (&priv->lock)));rcu_assign_pointer (htbl->buckets[hash_val], neigh);
@@ -1092,7 +1092,7 @@ void ipoib_neigh_free(struct ipoib_neigh *neigh) lockdep_is_held(&priv->lock))) {if (n == neigh) {/* found */ -rcu_assign_pointer (*np, +RCU_INIT_POINTER (*np,rcu_dereference_protected (neigh->hnext,lockdep_is_held (&priv->lock)));/* remove from parent list */
@@ -1177,7 +1177,7 @@ void ipoib_del_neighs_by_gid(struct net_device *dev, u8 *gid) lockdep_is_held(&priv->lock))) != NULL) {/* delete neighs belong to this parent */ if (!memcmp (gid, neigh->daddr +4 ,sizeof (union ib_gid ))) { -rcu_assign_pointer (*np, +RCU_INIT_POINTER (*np,rcu_dereference_protected (neigh->hnext,lockdep_is_held (&priv->lock)));/* remove from parent list */
@@ -1219,7 +1219,7 @@ static void ipoib_flush_neighs(struct ipoib_dev_priv *priv)while ((neigh =rcu_dereference_protected (*np,lockdep_is_held (&priv->lock))) !=NULL ) { -rcu_assign_pointer (*np, +RCU_INIT_POINTER (*np,rcu_dereference_protected (neigh->hnext,lockdep_is_held (&priv->lock)));/* remove from path/mc list */
Signature · 6 lines
1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html