net: fix two lockdep splats
Commit e67f88dd12
(net: dont hold rtnl mutex during netlink dump
callbacks) switched rtnl protection to RCU, but we forgot to adjust two
rcu_dereference() lockdep annotations :
inet_get_link_af_size() or inet_fill_link_af() might be called with
rcu_read_lock or rtnl held, so use rcu_dereference_rtnl()
instead of rtnl_dereference()
Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8f01cb0827
commit
1fc19aff84
|
@ -1369,7 +1369,7 @@ errout:
|
|||
|
||||
static size_t inet_get_link_af_size(const struct net_device *dev)
|
||||
{
|
||||
struct in_device *in_dev = __in_dev_get_rtnl(dev);
|
||||
struct in_device *in_dev = rcu_dereference_rtnl(dev->ip_ptr);
|
||||
|
||||
if (!in_dev)
|
||||
return 0;
|
||||
|
@ -1379,7 +1379,7 @@ static size_t inet_get_link_af_size(const struct net_device *dev)
|
|||
|
||||
static int inet_fill_link_af(struct sk_buff *skb, const struct net_device *dev)
|
||||
{
|
||||
struct in_device *in_dev = __in_dev_get_rtnl(dev);
|
||||
struct in_device *in_dev = rcu_dereference_rtnl(dev->ip_ptr);
|
||||
struct nlattr *nla;
|
||||
int i;
|
||||
|
||||
|
|
Loading…
Reference in New Issue