On 8/10/17 8:52 AM, Florian Westphal wrote:
> David Ahern reports following splat:
> RTNL: assertion failed at net/core/dev.c (5717)
> netdev_master_upper_dev_get+0x5f/0x70
> if_nlmsg_size+0x158/0x240
> rtnl_calcit.isra.26+0xa3/0xf0
>
> rtnl_link_get_slave_info_data_size currently assumes RTNL protection, but
> there appears to be no hard requirement for this, so use rcu instead.
>
> At the time of this writing, there are three 'get_slave_size' callbacks
> (now invoked under rcu): bond_get_slave_size, vrf_get_slave_size and
> br_port_get_slave_size, all return constant only (i.e. they don't sleep).
>
> Fixes: 6853dd488119 ("rtnetlink: protect handler table with rcu")
> Reported-by: David Ahern <[email protected]>
> Signed-off-by: Florian Westphal <[email protected]>
> ---
> net/core/rtnetlink.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
Acked-by: David Ahern <[email protected]>