|
@@ -1203,7 +1203,7 @@ void netdev_state_change(struct net_device *dev)
|
|
|
{
|
|
|
if (dev->flags & IFF_UP) {
|
|
|
call_netdevice_notifiers(NETDEV_CHANGE, dev);
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, 0);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL);
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL(netdev_state_change);
|
|
@@ -1293,7 +1293,7 @@ int dev_open(struct net_device *dev)
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING, GFP_KERNEL);
|
|
|
call_netdevice_notifiers(NETDEV_UP, dev);
|
|
|
|
|
|
return ret;
|
|
@@ -1371,7 +1371,7 @@ static int dev_close_many(struct list_head *head)
|
|
|
__dev_close_many(head);
|
|
|
|
|
|
list_for_each_entry_safe(dev, tmp, head, close_list) {
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, IFF_UP|IFF_RUNNING, GFP_KERNEL);
|
|
|
call_netdevice_notifiers(NETDEV_DOWN, dev);
|
|
|
list_del_init(&dev->close_list);
|
|
|
}
|
|
@@ -5258,7 +5258,7 @@ void __dev_notify_flags(struct net_device *dev, unsigned int old_flags,
|
|
|
unsigned int changes = dev->flags ^ old_flags;
|
|
|
|
|
|
if (gchanges)
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, gchanges);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, gchanges, GFP_ATOMIC);
|
|
|
|
|
|
if (changes & IFF_UP) {
|
|
|
if (dev->flags & IFF_UP)
|
|
@@ -5490,7 +5490,7 @@ static void rollback_registered_many(struct list_head *head)
|
|
|
|
|
|
if (!dev->rtnl_link_ops ||
|
|
|
dev->rtnl_link_state == RTNL_LINK_INITIALIZED)
|
|
|
- rtmsg_ifinfo(RTM_DELLINK, dev, ~0U);
|
|
|
+ rtmsg_ifinfo(RTM_DELLINK, dev, ~0U, GFP_KERNEL);
|
|
|
|
|
|
/*
|
|
|
* Flush the unicast and multicast chains
|
|
@@ -5889,7 +5889,7 @@ int register_netdevice(struct net_device *dev)
|
|
|
*/
|
|
|
if (!dev->rtnl_link_ops ||
|
|
|
dev->rtnl_link_state == RTNL_LINK_INITIALIZED)
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U, GFP_KERNEL);
|
|
|
|
|
|
out:
|
|
|
return ret;
|
|
@@ -6501,7 +6501,7 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
|
|
call_netdevice_notifiers(NETDEV_UNREGISTER, dev);
|
|
|
rcu_barrier();
|
|
|
call_netdevice_notifiers(NETDEV_UNREGISTER_FINAL, dev);
|
|
|
- rtmsg_ifinfo(RTM_DELLINK, dev, ~0U);
|
|
|
+ rtmsg_ifinfo(RTM_DELLINK, dev, ~0U, GFP_KERNEL);
|
|
|
|
|
|
/*
|
|
|
* Flush the unicast and multicast chains
|
|
@@ -6540,7 +6540,7 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
|
|
|
* Prevent userspace races by waiting until the network
|
|
|
* device is fully setup before sending notifications.
|
|
|
*/
|
|
|
- rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U);
|
|
|
+ rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U, GFP_KERNEL);
|
|
|
|
|
|
synchronize_net();
|
|
|
err = 0;
|