summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2018-03-08 10:29:30 +0100
committerDavid S. Miller <davem@davemloft.net>2018-03-08 17:12:43 +0100
commitae5799dc7ec77fe0382d58cdcba9f6d1204157ae (patch)
tree9191b39a36b22345ac9f291fad56f0836e7e27f6
parentip6mr: remove synchronize_rcu() in favor of SOCK_RCU_FREE (diff)
downloadlinux-ae5799dc7ec77fe0382d58cdcba9f6d1204157ae.tar.xz
linux-ae5799dc7ec77fe0382d58cdcba9f6d1204157ae.zip
ipvlan: properly annotate rx_handler access
The rx_handler field is rcu-protected, but I forgot to use the proper accessor while refactoring netif_is_ipvlan_port(). Such function only check the rx_handler value, so it is safe, but we need to properly read rx_handler via rcu_access_pointer() to avoid sparse warnings. Fixes: 1ec54cb44e67 ("net: unpollute priv_flags space") Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ipvlan/ipvlan.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ipvlan/ipvlan.h b/drivers/net/ipvlan/ipvlan.h
index c818b9bdab6e..adb826f55e60 100644
--- a/drivers/net/ipvlan/ipvlan.h
+++ b/drivers/net/ipvlan/ipvlan.h
@@ -180,7 +180,7 @@ int ipvlan_link_register(struct rtnl_link_ops *ops);
static inline bool netif_is_ipvlan_port(const struct net_device *dev)
{
- return dev->rx_handler == ipvlan_handle_frame;
+ return rcu_access_pointer(dev->rx_handler) == ipvlan_handle_frame;
}
#endif /* __IPVLAN_H */