On 11/21/18 6:07 PM, Alexis Bauvin wrote:
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 93243479085f..12459036d0da 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -7225,6 +7225,23 @@ void netdev_lower_state_changed(struct net_device 
> *lower_dev,
>  }
>  EXPORT_SYMBOL(netdev_lower_state_changed);
>  
> +/**
> + * netdev_is_upper_master - Test if a device is a master, direct or indirect,
> + *                          of another one.
> + * @dev: device to start looking from
> + * @master: device to test if master of dev
> + */
> +bool netdev_is_upper_master(struct net_device *dev, struct net_device 
> *master)
> +{
> +     if (!dev)
> +             return false;
> +
> +     if (dev->ifindex == master->ifindex)

dev == master should work as well without the dereference.

> +             return true;
> +     return netdev_is_upper_master(netdev_master_upper_dev_get(dev), master);
> +}
> +EXPORT_SYMBOL(netdev_is_upper_master);
> +
>  static void dev_change_rx_flags(struct net_device *dev, int flags)
>  {
>       const struct net_device_ops *ops = dev->netdev_ops;
> 

Reply via email to