Thread (28 messages) 28 messages, 8 authors, 2020-12-10

Re: Correct usage of dev_base_lock in 2020

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2020-11-30 20:22:47

On Mon, 30 Nov 2020 21:46:17 +0200
Vladimir Oltean [off-list ref] wrote:
On Mon, Nov 30, 2020 at 08:22:01PM +0100, Eric Dumazet wrote:
quoted
And ?

A bonding device can absolutely maintain a private list, ready for
bonding ndo_get_stats() use, regardless
of register/unregister logic.

bond_for_each_slave() is simply a macro, you can replace it by something else.  
Also, coming to take the comment at face value.
Can it really? How? Freeing a net_device at unregister time happens
after an RCU grace period. So whatever the bonding driver does to keep a
private list of slave devices, those pointers need to be under RCU
protection. And that doesn't help with the sleepable context that we're
looking for.
if device is in a private list (in bond device), the way to handle
this is to use dev_hold() to keep a ref count.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help