@@ -1602,6 +1602,11 @@ struct netdevice_notifier_info {
struct net_device *dev;
};
+struct netdevice_notifier_change_info {
+ struct netdevice_notifier_info info; /* must be first */
+ unsigned int flags_changed;
+};
+
static inline struct net_device *
get_netdevice_notifier_info_dev(const struct netdevice_notifier_info *info)
{
@@ -4778,8 +4778,13 @@ void __dev_notify_flags(struct net_device *dev, unsigned int old_flags)
}
if (dev->flags & IFF_UP &&
- (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE)))
- call_netdevice_notifiers(NETDEV_CHANGE, dev);
+ (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) {
+ struct netdevice_notifier_change_info change_info;
+
+ change_info.flags_changed = changes;
+ call_netdevice_notifiers_info(NETDEV_CHANGE, dev,
+ &change_info.info);
+ }
}
/**