Le 22 nov. 2018 à 18:14, David Ahern <d...@cumulusnetworks.com> a écrit : > 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.
Ack, will add to next version. >> + 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; >>