addrconf.c (320424c7d44f54c18df9812fd7c45f6963524002) | addrconf.c (6126891c6d4f6f4ef50323d2020635ee255a796e) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * IPv6 Address [auto]configuration 4 * Linux INET6 implementation 5 * 6 * Authors: 7 * Pedro Roque <roque@di.fc.ul.pt> 8 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> --- 1066 unchanged lines hidden (view full) --- 1075 }; 1076 1077 err = inet6addr_validator_notifier_call_chain(NETDEV_UP, &i6vi); 1078 err = notifier_to_errno(err); 1079 if (err < 0) 1080 goto out; 1081 } 1082 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * IPv6 Address [auto]configuration 4 * Linux INET6 implementation 5 * 6 * Authors: 7 * Pedro Roque <roque@di.fc.ul.pt> 8 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> --- 1066 unchanged lines hidden (view full) --- 1075 }; 1076 1077 err = inet6addr_validator_notifier_call_chain(NETDEV_UP, &i6vi); 1078 err = notifier_to_errno(err); 1079 if (err < 0) 1080 goto out; 1081 } 1082 |
1083 ifa = kzalloc(sizeof(*ifa), gfp_flags); | 1083 ifa = kzalloc(sizeof(*ifa), gfp_flags | __GFP_ACCOUNT); |
1084 if (!ifa) { 1085 err = -ENOBUFS; 1086 goto out; 1087 } 1088 1089 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); 1090 if (IS_ERR(f6i)) { 1091 err = PTR_ERR(f6i); --- 4114 unchanged lines hidden (view full) --- 5206 const struct nlmsghdr *nlh = cb->nlh; 5207 struct inet6_fill_args fillargs = { 5208 .portid = NETLINK_CB(cb->skb).portid, 5209 .seq = cb->nlh->nlmsg_seq, 5210 .flags = NLM_F_MULTI, 5211 .netnsid = -1, 5212 .type = type, 5213 }; | 1084 if (!ifa) { 1085 err = -ENOBUFS; 1086 goto out; 1087 } 1088 1089 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); 1090 if (IS_ERR(f6i)) { 1091 err = PTR_ERR(f6i); --- 4114 unchanged lines hidden (view full) --- 5206 const struct nlmsghdr *nlh = cb->nlh; 5207 struct inet6_fill_args fillargs = { 5208 .portid = NETLINK_CB(cb->skb).portid, 5209 .seq = cb->nlh->nlmsg_seq, 5210 .flags = NLM_F_MULTI, 5211 .netnsid = -1, 5212 .type = type, 5213 }; |
5214 struct net *net = sock_net(skb->sk); 5215 struct net *tgt_net = net; | 5214 struct net *tgt_net = sock_net(skb->sk); |
5216 int idx, s_idx, s_ip_idx; 5217 int h, s_h; 5218 struct net_device *dev; 5219 struct inet6_dev *idev; 5220 struct hlist_head *head; 5221 int err = 0; 5222 5223 s_h = cb->args[0]; --- 122 unchanged lines hidden (view full) --- 5346 } 5347 5348 return 0; 5349} 5350 5351static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr *nlh, 5352 struct netlink_ext_ack *extack) 5353{ | 5215 int idx, s_idx, s_ip_idx; 5216 int h, s_h; 5217 struct net_device *dev; 5218 struct inet6_dev *idev; 5219 struct hlist_head *head; 5220 int err = 0; 5221 5222 s_h = cb->args[0]; --- 122 unchanged lines hidden (view full) --- 5345 } 5346 5347 return 0; 5348} 5349 5350static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr *nlh, 5351 struct netlink_ext_ack *extack) 5352{ |
5354 struct net *net = sock_net(in_skb->sk); | 5353 struct net *tgt_net = sock_net(in_skb->sk); |
5355 struct inet6_fill_args fillargs = { 5356 .portid = NETLINK_CB(in_skb).portid, 5357 .seq = nlh->nlmsg_seq, 5358 .event = RTM_NEWADDR, 5359 .flags = 0, 5360 .netnsid = -1, 5361 }; | 5354 struct inet6_fill_args fillargs = { 5355 .portid = NETLINK_CB(in_skb).portid, 5356 .seq = nlh->nlmsg_seq, 5357 .event = RTM_NEWADDR, 5358 .flags = 0, 5359 .netnsid = -1, 5360 }; |
5362 struct net *tgt_net = net; | |
5363 struct ifaddrmsg *ifm; 5364 struct nlattr *tb[IFA_MAX+1]; 5365 struct in6_addr *addr = NULL, *peer; 5366 struct net_device *dev = NULL; 5367 struct inet6_ifaddr *ifa; 5368 struct sk_buff *skb; 5369 int err; 5370 --- 1527 unchanged lines hidden (view full) --- 6898 { 6899 .procname = "enhanced_dad", 6900 .data = &ipv6_devconf.enhanced_dad, 6901 .maxlen = sizeof(int), 6902 .mode = 0644, 6903 .proc_handler = proc_dointvec, 6904 }, 6905 { | 5361 struct ifaddrmsg *ifm; 5362 struct nlattr *tb[IFA_MAX+1]; 5363 struct in6_addr *addr = NULL, *peer; 5364 struct net_device *dev = NULL; 5365 struct inet6_ifaddr *ifa; 5366 struct sk_buff *skb; 5367 int err; 5368 --- 1527 unchanged lines hidden (view full) --- 6896 { 6897 .procname = "enhanced_dad", 6898 .data = &ipv6_devconf.enhanced_dad, 6899 .maxlen = sizeof(int), 6900 .mode = 0644, 6901 .proc_handler = proc_dointvec, 6902 }, 6903 { |
6906 .procname = "addr_gen_mode", 6907 .data = &ipv6_devconf.addr_gen_mode, 6908 .maxlen = sizeof(int), 6909 .mode = 0644, | 6904 .procname = "addr_gen_mode", 6905 .data = &ipv6_devconf.addr_gen_mode, 6906 .maxlen = sizeof(int), 6907 .mode = 0644, |
6910 .proc_handler = addrconf_sysctl_addr_gen_mode, 6911 }, 6912 { 6913 .procname = "disable_policy", 6914 .data = &ipv6_devconf.disable_policy, 6915 .maxlen = sizeof(int), 6916 .mode = 0644, 6917 .proc_handler = addrconf_sysctl_disable_policy, --- 353 unchanged lines hidden --- | 6908 .proc_handler = addrconf_sysctl_addr_gen_mode, 6909 }, 6910 { 6911 .procname = "disable_policy", 6912 .data = &ipv6_devconf.disable_policy, 6913 .maxlen = sizeof(int), 6914 .mode = 0644, 6915 .proc_handler = addrconf_sysctl_disable_policy, --- 353 unchanged lines hidden --- |