addrconf.c (e291c116f60f3c1ca98090f0f8e7c77e658562fb) | addrconf.c (8a321cf7becc6c065ae595b837b826a2a81036b9) |
---|---|
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> --- 3306 unchanged lines hidden (view full) --- 3315{ 3316 struct in6_addr addr; 3317 3318 /* no link local addresses on L3 master devices */ 3319 if (netif_is_l3_master(idev->dev)) 3320 return; 3321 3322 /* no link local addresses on devices flagged as slaves */ | 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> --- 3306 unchanged lines hidden (view full) --- 3315{ 3316 struct in6_addr addr; 3317 3318 /* no link local addresses on L3 master devices */ 3319 if (netif_is_l3_master(idev->dev)) 3320 return; 3321 3322 /* no link local addresses on devices flagged as slaves */ |
3323 if (idev->dev->flags & IFF_SLAVE) | 3323 if (idev->dev->priv_flags & IFF_NO_ADDRCONF) |
3324 return; 3325 3326 ipv6_addr_set(&addr, htonl(0xFE800000), 0, 0, 0); 3327 3328 switch (idev->cnf.addr_gen_mode) { 3329 case IN6_ADDR_GEN_MODE_RANDOM: 3330 ipv6_gen_mode_random_init(idev); 3331 fallthrough; --- 223 unchanged lines hidden (view full) --- 3555 3556 run_pending = 1; 3557 fallthrough; 3558 case NETDEV_UP: 3559 case NETDEV_CHANGE: 3560 if (idev && idev->cnf.disable_ipv6) 3561 break; 3562 | 3324 return; 3325 3326 ipv6_addr_set(&addr, htonl(0xFE800000), 0, 0, 0); 3327 3328 switch (idev->cnf.addr_gen_mode) { 3329 case IN6_ADDR_GEN_MODE_RANDOM: 3330 ipv6_gen_mode_random_init(idev); 3331 fallthrough; --- 223 unchanged lines hidden (view full) --- 3555 3556 run_pending = 1; 3557 fallthrough; 3558 case NETDEV_UP: 3559 case NETDEV_CHANGE: 3560 if (idev && idev->cnf.disable_ipv6) 3561 break; 3562 |
3563 if (dev->flags & IFF_SLAVE) { | 3563 if (dev->priv_flags & IFF_NO_ADDRCONF) { |
3564 if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) && 3565 dev->flags & IFF_UP && dev->flags & IFF_MULTICAST) 3566 ipv6_mc_up(idev); 3567 break; 3568 } 3569 3570 if (event == NETDEV_UP) { 3571 /* restore routes for permanent addresses */ --- 3637 unchanged lines hidden (view full) --- 7209#endif 7210 return 0; 7211 7212#ifdef CONFIG_SYSCTL 7213err_reg_dflt: 7214 __addrconf_sysctl_unregister(net, all, NETCONFA_IFINDEX_ALL); 7215err_reg_all: 7216 kfree(dflt); | 3564 if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) && 3565 dev->flags & IFF_UP && dev->flags & IFF_MULTICAST) 3566 ipv6_mc_up(idev); 3567 break; 3568 } 3569 3570 if (event == NETDEV_UP) { 3571 /* restore routes for permanent addresses */ --- 3637 unchanged lines hidden (view full) --- 7209#endif 7210 return 0; 7211 7212#ifdef CONFIG_SYSCTL 7213err_reg_dflt: 7214 __addrconf_sysctl_unregister(net, all, NETCONFA_IFINDEX_ALL); 7215err_reg_all: 7216 kfree(dflt); |
7217 net->ipv6.devconf_dflt = NULL; |
|
7217#endif 7218err_alloc_dflt: 7219 kfree(all); | 7218#endif 7219err_alloc_dflt: 7220 kfree(all); |
7221 net->ipv6.devconf_all = NULL; |
|
7220err_alloc_all: 7221 kfree(net->ipv6.inet6_addr_lst); 7222err_alloc_addr: 7223 return err; 7224} 7225 7226static void __net_exit addrconf_exit_net(struct net *net) 7227{ --- 154 unchanged lines hidden --- | 7222err_alloc_all: 7223 kfree(net->ipv6.inet6_addr_lst); 7224err_alloc_addr: 7225 return err; 7226} 7227 7228static void __net_exit addrconf_exit_net(struct net *net) 7229{ --- 154 unchanged lines hidden --- |