ipvlan: properly annotate rx_handler access
authorPaolo Abeni <pabeni@redhat.com>
Thu, 8 Mar 2018 09:29:30 +0000 (10:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Mar 2018 16:12:43 +0000 (11:12 -0500)
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>
drivers/net/ipvlan/ipvlan.h

index c818b9b..adb826f 100644 (file)
@@ -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 */