Re: [PATCH 1/1] bonding: restrict the data protected by rcu_read_lock

2016-07-12 Thread David Miller
From: Zhu Yanjun 
Date: Tue, 12 Jul 2016 15:28:17 +0800

> In this function, origin is a pointer to struct aggregator.
> No matter what agg is changed to, it has nothing to do with origin.
> 
> CC: Jay Vosburgh 
> Signed-off-by: Zhu Yanjun 

I really hate changes like this.

Imagine if a inner function was called with RCU protection around
it, as a rule.

That's the same as what is happening here, the RCU locking is done
around the entire contents of the function and that is perfectly
fine even if one variable assignment or whatever is superfluously
contained inside of it.

I'm not applying this patch, sorry.


[PATCH 1/1] bonding: restrict the data protected by rcu_read_lock

2016-07-12 Thread Zhu Yanjun
In this function, origin is a pointer to struct aggregator.
No matter what agg is changed to, it has nothing to do with origin.

CC: Jay Vosburgh 
Signed-off-by: Zhu Yanjun 
---
 drivers/net/bonding/bond_3ad.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index edc70ff..20afee3 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1624,8 +1624,8 @@ static void ad_agg_selection_logic(struct aggregator *agg,
struct slave *slave;
struct port *port;
 
-   rcu_read_lock();
origin = agg;
+   rcu_read_lock();
active = __get_active_agg(agg);
best = (active && agg_device_up(active)) ? active : NULL;
 
-- 
1.7.9.5