summaryrefslogtreecommitdiff
path: root/net/ipv6/mcast.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/mcast.c')
-rw-r--r--net/ipv6/mcast.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 587831c148de..9dfdb40988b0 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -920,7 +920,9 @@ static void inet6_ifmcaddr_notify(struct net_device *dev,
int err = -ENOMEM;
skb = nlmsg_new(NLMSG_ALIGN(sizeof(struct ifaddrmsg)) +
- nla_total_size(16), GFP_ATOMIC);
+ nla_total_size(sizeof(struct in6_addr)) +
+ nla_total_size(sizeof(struct ifa_cacheinfo)),
+ GFP_KERNEL);
if (!skb)
goto error;
@@ -931,7 +933,7 @@ static void inet6_ifmcaddr_notify(struct net_device *dev,
goto error;
}
- rtnl_notify(skb, net, 0, RTNLGRP_IPV6_MCADDR, NULL, GFP_ATOMIC);
+ rtnl_notify(skb, net, 0, RTNLGRP_IPV6_MCADDR, NULL, GFP_KERNEL);
return;
error:
rtnl_set_sk_err(net, RTNLGRP_IPV6_MCADDR, err);