David Ahern <d...@cumulusnetworks.com> wrote:
> As Eric noted netif_index_is_vrf is not called with rcu_read_lock held,
> so use dev_get_by_index instead of dev_get_by_index_rcu.
> 
> If VRF is not enabled or oif is 0 skip the device lookup.
> 
> Signed-off-by: David Ahern <d...@cumulusnetworks.com>

Why not

>  static inline bool netif_index_is_vrf(struct net *net, int ifindex)
>  {
> -     struct net_device *dev = dev_get_by_index_rcu(net, ifindex);
>       bool rc = false;
>  
> -     if (dev)
> -             rc = netif_is_vrf(dev);
> +#if IS_ENABLED(CONFIG_NET_VRF)
> +     struct net_device *dev;
> +
> +     if (ifindex == 0)
> +             return false;

        rcu_read_lock();

        dev = dev_get_by_index_rcu(net, ifindex);
        if (dev)
                rc = netif_is_vrf(dev);

        rcu_read_unlock();

> +#endif
>       return rc;

instead?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to