Skip to contentSkip to conversation

bonding: Replace rcu_dereference() with rcu_access_pointer()

PATCH Applied Andreea-Cristina Bernat 2 participants 2 messages Aug 17, 2014 – Aug 22, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 bonding: Replace rcu_dereference() with rcu_access_pointer()

This "rcu_dereference()" call is used directly in a condition. Since its return value is never dereferenced it is recommended to use "rcu_access_pointer()" instead of "rcu_dereference()". Therefore, this patch makes this replacement.

The following Coccinelle semantic patch was used for solving it:
@@
@@

(
if(
(<+...
- rcu_dereference
+ rcu_access_pointer
(...)
...+>)) {...}
|
while(
(<+...
- rcu_dereference
+ rcu_access_pointer
(...)
...+>)) {...}
)

---
Changes in v2:
- Modified subject line from
"rcu: Replace rcu_dereference() with rcu_access_pointer()" to
"bonding: Replace rcu_dereference() with rcu_access_pointer()", noted by David Miller <[email protected]>

 drivers/net/bonding/bond_alb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/bonding/bond_alb.c +1 -1
index 76c0dad..1319c5b 100644
@@ -1385,7 +1385,7 @@ static int bond_do_alb_xmit(struct sk_buff *skb, struct bonding *bond,
 	}
 
 	if (tx_slave && bond_slave_can_tx(tx_slave)) {
-		if (tx_slave != rcu_dereference(bond->curr_active_slave)) {
+		if (tx_slave != rcu_access_pointer(bond->curr_active_slave)) {
 			ether_addr_copy(eth_data->h_source,
 					tx_slave->dev->dev_addr);
 		}
Signature · 1 line
1.9.1
maintainer Applied
#1 lore raw

From: Andreea-Cristina Bernat <[email protected]>
Date: Sun, 17 Aug 2014 13:21:45 +0300

Quoted 4 lines

This "rcu_dereference()" call is used directly in a condition. Since its return value is never dereferenced it is recommended to use "rcu_access_pointer()" instead of "rcu_dereference()". Therefore, this patch makes this replacement.

...

Quoted 1 line

Applied.