Commit 5d9efa7e authored by David S. Miller's avatar David S. Miller

ipv6: Remove privacy config option.

The code for privacy extentions is very mature, and making it
configurable only gives marginal memory/code savings in exchange
for obfuscation and hard to read code via CPP ifdef'ery.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d5d45d42
...@@ -21,13 +21,11 @@ struct ipv6_devconf { ...@@ -21,13 +21,11 @@ struct ipv6_devconf {
__s32 force_mld_version; __s32 force_mld_version;
__s32 mldv1_unsolicited_report_interval; __s32 mldv1_unsolicited_report_interval;
__s32 mldv2_unsolicited_report_interval; __s32 mldv2_unsolicited_report_interval;
#ifdef CONFIG_IPV6_PRIVACY
__s32 use_tempaddr; __s32 use_tempaddr;
__s32 temp_valid_lft; __s32 temp_valid_lft;
__s32 temp_prefered_lft; __s32 temp_prefered_lft;
__s32 regen_max_retry; __s32 regen_max_retry;
__s32 max_desync_factor; __s32 max_desync_factor;
#endif
__s32 max_addresses; __s32 max_addresses;
__s32 accept_ra_defrtr; __s32 accept_ra_defrtr;
__s32 accept_ra_pinfo; __s32 accept_ra_pinfo;
......
...@@ -66,11 +66,10 @@ struct inet6_ifaddr { ...@@ -66,11 +66,10 @@ struct inet6_ifaddr {
struct hlist_node addr_lst; struct hlist_node addr_lst;
struct list_head if_list; struct list_head if_list;
#ifdef CONFIG_IPV6_PRIVACY
struct list_head tmp_list; struct list_head tmp_list;
struct inet6_ifaddr *ifpub; struct inet6_ifaddr *ifpub;
int regen_count; int regen_count;
#endif
bool tokenized; bool tokenized;
struct rcu_head rcu; struct rcu_head rcu;
...@@ -192,11 +191,9 @@ struct inet6_dev { ...@@ -192,11 +191,9 @@ struct inet6_dev {
__u32 if_flags; __u32 if_flags;
int dead; int dead;
#ifdef CONFIG_IPV6_PRIVACY
u8 rndid[8]; u8 rndid[8];
struct timer_list regen_timer; struct timer_list regen_timer;
struct list_head tempaddr_list; struct list_head tempaddr_list;
#endif
struct in6_addr token; struct in6_addr token;
......
...@@ -21,24 +21,6 @@ menuconfig IPV6 ...@@ -21,24 +21,6 @@ menuconfig IPV6
if IPV6 if IPV6
config IPV6_PRIVACY
bool "IPv6: Privacy Extensions (RFC 3041) support"
---help---
Privacy Extensions for Stateless Address Autoconfiguration in IPv6
support. With this option, additional periodically-altered
pseudo-random global-scope unicast address(es) will be assigned to
your interface(s).
We use our standard pseudo-random algorithm to generate the
randomized interface identifier, instead of one described in RFC 3041.
By default the kernel does not generate temporary addresses.
To use temporary addresses, do
echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr
See <file:Documentation/networking/ip-sysctl.txt> for details.
config IPV6_ROUTER_PREF config IPV6_ROUTER_PREF
bool "IPv6: Router Preference (RFC 4191) support" bool "IPv6: Router Preference (RFC 4191) support"
---help--- ---help---
......
...@@ -83,11 +83,7 @@ ...@@ -83,11 +83,7 @@
#include <linux/if_tunnel.h> #include <linux/if_tunnel.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <linux/netconf.h> #include <linux/netconf.h>
#ifdef CONFIG_IPV6_PRIVACY
#include <linux/random.h> #include <linux/random.h>
#endif
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>
...@@ -124,11 +120,9 @@ static inline void addrconf_sysctl_unregister(struct inet6_dev *idev) ...@@ -124,11 +120,9 @@ static inline void addrconf_sysctl_unregister(struct inet6_dev *idev)
} }
#endif #endif
#ifdef CONFIG_IPV6_PRIVACY
static void __ipv6_regen_rndid(struct inet6_dev *idev); static void __ipv6_regen_rndid(struct inet6_dev *idev);
static void __ipv6_try_regen_rndid(struct inet6_dev *idev, struct in6_addr *tmpaddr); static void __ipv6_try_regen_rndid(struct inet6_dev *idev, struct in6_addr *tmpaddr);
static void ipv6_regen_rndid(unsigned long data); static void ipv6_regen_rndid(unsigned long data);
#endif
static int ipv6_generate_eui64(u8 *eui, struct net_device *dev); static int ipv6_generate_eui64(u8 *eui, struct net_device *dev);
static int ipv6_count_addresses(struct inet6_dev *idev); static int ipv6_count_addresses(struct inet6_dev *idev);
...@@ -183,13 +177,11 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = { ...@@ -183,13 +177,11 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
.rtr_solicits = MAX_RTR_SOLICITATIONS, .rtr_solicits = MAX_RTR_SOLICITATIONS,
.rtr_solicit_interval = RTR_SOLICITATION_INTERVAL, .rtr_solicit_interval = RTR_SOLICITATION_INTERVAL,
.rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY, .rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY,
#ifdef CONFIG_IPV6_PRIVACY
.use_tempaddr = 0, .use_tempaddr = 0,
.temp_valid_lft = TEMP_VALID_LIFETIME, .temp_valid_lft = TEMP_VALID_LIFETIME,
.temp_prefered_lft = TEMP_PREFERRED_LIFETIME, .temp_prefered_lft = TEMP_PREFERRED_LIFETIME,
.regen_max_retry = REGEN_MAX_RETRY, .regen_max_retry = REGEN_MAX_RETRY,
.max_desync_factor = MAX_DESYNC_FACTOR, .max_desync_factor = MAX_DESYNC_FACTOR,
#endif
.max_addresses = IPV6_MAX_ADDRESSES, .max_addresses = IPV6_MAX_ADDRESSES,
.accept_ra_defrtr = 1, .accept_ra_defrtr = 1,
.accept_ra_pinfo = 1, .accept_ra_pinfo = 1,
...@@ -221,13 +213,11 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { ...@@ -221,13 +213,11 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
.rtr_solicits = MAX_RTR_SOLICITATIONS, .rtr_solicits = MAX_RTR_SOLICITATIONS,
.rtr_solicit_interval = RTR_SOLICITATION_INTERVAL, .rtr_solicit_interval = RTR_SOLICITATION_INTERVAL,
.rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY, .rtr_solicit_delay = MAX_RTR_SOLICITATION_DELAY,
#ifdef CONFIG_IPV6_PRIVACY
.use_tempaddr = 0, .use_tempaddr = 0,
.temp_valid_lft = TEMP_VALID_LIFETIME, .temp_valid_lft = TEMP_VALID_LIFETIME,
.temp_prefered_lft = TEMP_PREFERRED_LIFETIME, .temp_prefered_lft = TEMP_PREFERRED_LIFETIME,
.regen_max_retry = REGEN_MAX_RETRY, .regen_max_retry = REGEN_MAX_RETRY,
.max_desync_factor = MAX_DESYNC_FACTOR, .max_desync_factor = MAX_DESYNC_FACTOR,
#endif
.max_addresses = IPV6_MAX_ADDRESSES, .max_addresses = IPV6_MAX_ADDRESSES,
.accept_ra_defrtr = 1, .accept_ra_defrtr = 1,
.accept_ra_pinfo = 1, .accept_ra_pinfo = 1,
...@@ -371,7 +361,6 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev) ...@@ -371,7 +361,6 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev)
} }
#endif #endif
#ifdef CONFIG_IPV6_PRIVACY
INIT_LIST_HEAD(&ndev->tempaddr_list); INIT_LIST_HEAD(&ndev->tempaddr_list);
setup_timer(&ndev->regen_timer, ipv6_regen_rndid, (unsigned long)ndev); setup_timer(&ndev->regen_timer, ipv6_regen_rndid, (unsigned long)ndev);
if ((dev->flags&IFF_LOOPBACK) || if ((dev->flags&IFF_LOOPBACK) ||
...@@ -384,7 +373,7 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev) ...@@ -384,7 +373,7 @@ static struct inet6_dev *ipv6_add_dev(struct net_device *dev)
in6_dev_hold(ndev); in6_dev_hold(ndev);
ipv6_regen_rndid((unsigned long) ndev); ipv6_regen_rndid((unsigned long) ndev);
} }
#endif
ndev->token = in6addr_any; ndev->token = in6addr_any;
if (netif_running(dev) && addrconf_qdisc_ok(dev)) if (netif_running(dev) && addrconf_qdisc_ok(dev))
...@@ -865,12 +854,10 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, ...@@ -865,12 +854,10 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
/* Add to inet6_dev unicast addr list. */ /* Add to inet6_dev unicast addr list. */
ipv6_link_dev_addr(idev, ifa); ipv6_link_dev_addr(idev, ifa);
#ifdef CONFIG_IPV6_PRIVACY
if (ifa->flags&IFA_F_TEMPORARY) { if (ifa->flags&IFA_F_TEMPORARY) {
list_add(&ifa->tmp_list, &idev->tempaddr_list); list_add(&ifa->tmp_list, &idev->tempaddr_list);
in6_ifa_hold(ifa); in6_ifa_hold(ifa);
} }
#endif
in6_ifa_hold(ifa); in6_ifa_hold(ifa);
write_unlock(&idev->lock); write_unlock(&idev->lock);
...@@ -913,7 +900,7 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp) ...@@ -913,7 +900,7 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp)
spin_unlock_bh(&addrconf_hash_lock); spin_unlock_bh(&addrconf_hash_lock);
write_lock_bh(&idev->lock); write_lock_bh(&idev->lock);
#ifdef CONFIG_IPV6_PRIVACY
if (ifp->flags&IFA_F_TEMPORARY) { if (ifp->flags&IFA_F_TEMPORARY) {
list_del(&ifp->tmp_list); list_del(&ifp->tmp_list);
if (ifp->ifpub) { if (ifp->ifpub) {
...@@ -922,7 +909,6 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp) ...@@ -922,7 +909,6 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp)
} }
__in6_ifa_put(ifp); __in6_ifa_put(ifp);
} }
#endif
list_for_each_entry_safe(ifa, ifn, &idev->addr_list, if_list) { list_for_each_entry_safe(ifa, ifn, &idev->addr_list, if_list) {
if (ifa == ifp) { if (ifa == ifp) {
...@@ -1013,7 +999,6 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp) ...@@ -1013,7 +999,6 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp)
in6_ifa_put(ifp); in6_ifa_put(ifp);
} }
#ifdef CONFIG_IPV6_PRIVACY
static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, struct inet6_ifaddr *ift) static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, struct inet6_ifaddr *ift)
{ {
struct inet6_dev *idev = ifp->idev; struct inet6_dev *idev = ifp->idev;
...@@ -1116,7 +1101,6 @@ static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, struct inet6_ifaddr *i ...@@ -1116,7 +1101,6 @@ static int ipv6_create_tempaddr(struct inet6_ifaddr *ifp, struct inet6_ifaddr *i
out: out:
return ret; return ret;
} }
#endif
/* /*
* Choose an appropriate source address (RFC3484) * Choose an appropriate source address (RFC3484)
...@@ -1131,9 +1115,7 @@ enum { ...@@ -1131,9 +1115,7 @@ enum {
#endif #endif
IPV6_SADDR_RULE_OIF, IPV6_SADDR_RULE_OIF,
IPV6_SADDR_RULE_LABEL, IPV6_SADDR_RULE_LABEL,
#ifdef CONFIG_IPV6_PRIVACY
IPV6_SADDR_RULE_PRIVACY, IPV6_SADDR_RULE_PRIVACY,
#endif
IPV6_SADDR_RULE_ORCHID, IPV6_SADDR_RULE_ORCHID,
IPV6_SADDR_RULE_PREFIX, IPV6_SADDR_RULE_PREFIX,
IPV6_SADDR_RULE_MAX IPV6_SADDR_RULE_MAX
...@@ -1247,7 +1229,6 @@ static int ipv6_get_saddr_eval(struct net *net, ...@@ -1247,7 +1229,6 @@ static int ipv6_get_saddr_eval(struct net *net,
&score->ifa->addr, score->addr_type, &score->ifa->addr, score->addr_type,
score->ifa->idev->dev->ifindex) == dst->label; score->ifa->idev->dev->ifindex) == dst->label;
break; break;
#ifdef CONFIG_IPV6_PRIVACY
case IPV6_SADDR_RULE_PRIVACY: case IPV6_SADDR_RULE_PRIVACY:
{ {
/* Rule 7: Prefer public address /* Rule 7: Prefer public address
...@@ -1259,7 +1240,6 @@ static int ipv6_get_saddr_eval(struct net *net, ...@@ -1259,7 +1240,6 @@ static int ipv6_get_saddr_eval(struct net *net,
ret = (!(score->ifa->flags & IFA_F_TEMPORARY)) ^ preftmp; ret = (!(score->ifa->flags & IFA_F_TEMPORARY)) ^ preftmp;
break; break;
} }
#endif
case IPV6_SADDR_RULE_ORCHID: case IPV6_SADDR_RULE_ORCHID:
/* Rule 8-: Prefer ORCHID vs ORCHID or /* Rule 8-: Prefer ORCHID vs ORCHID or
* non-ORCHID vs non-ORCHID * non-ORCHID vs non-ORCHID
...@@ -1588,7 +1568,6 @@ static void addrconf_dad_stop(struct inet6_ifaddr *ifp, int dad_failed) ...@@ -1588,7 +1568,6 @@ static void addrconf_dad_stop(struct inet6_ifaddr *ifp, int dad_failed)
if (dad_failed) if (dad_failed)
ipv6_ifa_notify(0, ifp); ipv6_ifa_notify(0, ifp);
in6_ifa_put(ifp); in6_ifa_put(ifp);
#ifdef CONFIG_IPV6_PRIVACY
} else if (ifp->flags&IFA_F_TEMPORARY) { } else if (ifp->flags&IFA_F_TEMPORARY) {
struct inet6_ifaddr *ifpub; struct inet6_ifaddr *ifpub;
spin_lock_bh(&ifp->lock); spin_lock_bh(&ifp->lock);
...@@ -1602,7 +1581,6 @@ static void addrconf_dad_stop(struct inet6_ifaddr *ifp, int dad_failed) ...@@ -1602,7 +1581,6 @@ static void addrconf_dad_stop(struct inet6_ifaddr *ifp, int dad_failed)
spin_unlock_bh(&ifp->lock); spin_unlock_bh(&ifp->lock);
} }
ipv6_del_addr(ifp); ipv6_del_addr(ifp);
#endif
} else } else
ipv6_del_addr(ifp); ipv6_del_addr(ifp);
} }
...@@ -1851,7 +1829,6 @@ static int ipv6_inherit_eui64(u8 *eui, struct inet6_dev *idev) ...@@ -1851,7 +1829,6 @@ static int ipv6_inherit_eui64(u8 *eui, struct inet6_dev *idev)
return err; return err;
} }
#ifdef CONFIG_IPV6_PRIVACY
/* (re)generation of randomized interface identifier (RFC 3041 3.2, 3.5) */ /* (re)generation of randomized interface identifier (RFC 3041 3.2, 3.5) */
static void __ipv6_regen_rndid(struct inet6_dev *idev) static void __ipv6_regen_rndid(struct inet6_dev *idev)
{ {
...@@ -1919,7 +1896,6 @@ static void __ipv6_try_regen_rndid(struct inet6_dev *idev, struct in6_addr *tmp ...@@ -1919,7 +1896,6 @@ static void __ipv6_try_regen_rndid(struct inet6_dev *idev, struct in6_addr *tmp
if (tmpaddr && memcmp(idev->rndid, &tmpaddr->s6_addr[8], 8) == 0) if (tmpaddr && memcmp(idev->rndid, &tmpaddr->s6_addr[8], 8) == 0)
__ipv6_regen_rndid(idev); __ipv6_regen_rndid(idev);
} }
#endif
/* /*
* Add prefix route. * Add prefix route.
...@@ -2207,9 +2183,7 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao) ...@@ -2207,9 +2183,7 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao)
if (ifp) { if (ifp) {
int flags; int flags;
unsigned long now; unsigned long now;
#ifdef CONFIG_IPV6_PRIVACY
struct inet6_ifaddr *ift; struct inet6_ifaddr *ift;
#endif
u32 stored_lft; u32 stored_lft;
/* update lifetime (RFC2462 5.5.3 e) */ /* update lifetime (RFC2462 5.5.3 e) */
...@@ -2250,7 +2224,6 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao) ...@@ -2250,7 +2224,6 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao)
} else } else
spin_unlock(&ifp->lock); spin_unlock(&ifp->lock);
#ifdef CONFIG_IPV6_PRIVACY
read_lock_bh(&in6_dev->lock); read_lock_bh(&in6_dev->lock);
/* update all temporary addresses in the list */ /* update all temporary addresses in the list */
list_for_each_entry(ift, &in6_dev->tempaddr_list, list_for_each_entry(ift, &in6_dev->tempaddr_list,
...@@ -2315,7 +2288,7 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao) ...@@ -2315,7 +2288,7 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao)
} else { } else {
read_unlock_bh(&in6_dev->lock); read_unlock_bh(&in6_dev->lock);
} }
#endif
in6_ifa_put(ifp); in6_ifa_put(ifp);
addrconf_verify(0); addrconf_verify(0);
} }
...@@ -2995,7 +2968,6 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -2995,7 +2968,6 @@ static int addrconf_ifdown(struct net_device *dev, int how)
if (!how) if (!how)
idev->if_flags &= ~(IF_RS_SENT|IF_RA_RCVD|IF_READY); idev->if_flags &= ~(IF_RS_SENT|IF_RA_RCVD|IF_READY);
#ifdef CONFIG_IPV6_PRIVACY
if (how && del_timer(&idev->regen_timer)) if (how && del_timer(&idev->regen_timer))
in6_dev_put(idev); in6_dev_put(idev);
...@@ -3015,7 +2987,6 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3015,7 +2987,6 @@ static int addrconf_ifdown(struct net_device *dev, int how)
in6_ifa_put(ifa); in6_ifa_put(ifa);
write_lock_bh(&idev->lock); write_lock_bh(&idev->lock);
} }
#endif
while (!list_empty(&idev->addr_list)) { while (!list_empty(&idev->addr_list)) {
ifa = list_first_entry(&idev->addr_list, ifa = list_first_entry(&idev->addr_list,
...@@ -3528,7 +3499,6 @@ static void addrconf_verify(unsigned long foo) ...@@ -3528,7 +3499,6 @@ static void addrconf_verify(unsigned long foo)
in6_ifa_put(ifp); in6_ifa_put(ifp);
goto restart; goto restart;
} }
#ifdef CONFIG_IPV6_PRIVACY
} else if ((ifp->flags&IFA_F_TEMPORARY) && } else if ((ifp->flags&IFA_F_TEMPORARY) &&
!(ifp->flags&IFA_F_TENTATIVE)) { !(ifp->flags&IFA_F_TENTATIVE)) {
unsigned long regen_advance = ifp->idev->cnf.regen_max_retry * unsigned long regen_advance = ifp->idev->cnf.regen_max_retry *
...@@ -3556,7 +3526,6 @@ static void addrconf_verify(unsigned long foo) ...@@ -3556,7 +3526,6 @@ static void addrconf_verify(unsigned long foo)
} else if (time_before(ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ, next)) } else if (time_before(ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ, next))
next = ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ; next = ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ;
spin_unlock(&ifp->lock); spin_unlock(&ifp->lock);
#endif
} else { } else {
/* ifp->prefered_lft <= ifp->valid_lft */ /* ifp->prefered_lft <= ifp->valid_lft */
if (time_before(ifp->tstamp + ifp->prefered_lft * HZ, next)) if (time_before(ifp->tstamp + ifp->prefered_lft * HZ, next))
...@@ -4128,13 +4097,11 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, ...@@ -4128,13 +4097,11 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf,
jiffies_to_msecs(cnf->mldv1_unsolicited_report_interval); jiffies_to_msecs(cnf->mldv1_unsolicited_report_interval);
array[DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL] = array[DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL] =
jiffies_to_msecs(cnf->mldv2_unsolicited_report_interval); jiffies_to_msecs(cnf->mldv2_unsolicited_report_interval);
#ifdef CONFIG_IPV6_PRIVACY
array[DEVCONF_USE_TEMPADDR] = cnf->use_tempaddr; array[DEVCONF_USE_TEMPADDR] = cnf->use_tempaddr;
array[DEVCONF_TEMP_VALID_LFT] = cnf->temp_valid_lft; array[DEVCONF_TEMP_VALID_LFT] = cnf->temp_valid_lft;
array[DEVCONF_TEMP_PREFERED_LFT] = cnf->temp_prefered_lft; array[DEVCONF_TEMP_PREFERED_LFT] = cnf->temp_prefered_lft;
array[DEVCONF_REGEN_MAX_RETRY] = cnf->regen_max_retry; array[DEVCONF_REGEN_MAX_RETRY] = cnf->regen_max_retry;
array[DEVCONF_MAX_DESYNC_FACTOR] = cnf->max_desync_factor; array[DEVCONF_MAX_DESYNC_FACTOR] = cnf->max_desync_factor;
#endif
array[DEVCONF_MAX_ADDRESSES] = cnf->max_addresses; array[DEVCONF_MAX_ADDRESSES] = cnf->max_addresses;
array[DEVCONF_ACCEPT_RA_DEFRTR] = cnf->accept_ra_defrtr; array[DEVCONF_ACCEPT_RA_DEFRTR] = cnf->accept_ra_defrtr;
array[DEVCONF_ACCEPT_RA_PINFO] = cnf->accept_ra_pinfo; array[DEVCONF_ACCEPT_RA_PINFO] = cnf->accept_ra_pinfo;
...@@ -4828,7 +4795,6 @@ static struct addrconf_sysctl_table ...@@ -4828,7 +4795,6 @@ static struct addrconf_sysctl_table
.mode = 0644, .mode = 0644,
.proc_handler = proc_dointvec_ms_jiffies, .proc_handler = proc_dointvec_ms_jiffies,
}, },
#ifdef CONFIG_IPV6_PRIVACY
{ {
.procname = "use_tempaddr", .procname = "use_tempaddr",
.data = &ipv6_devconf.use_tempaddr, .data = &ipv6_devconf.use_tempaddr,
...@@ -4864,7 +4830,6 @@ static struct addrconf_sysctl_table ...@@ -4864,7 +4830,6 @@ static struct addrconf_sysctl_table
.mode = 0644, .mode = 0644,
.proc_handler = proc_dointvec, .proc_handler = proc_dointvec,
}, },
#endif
{ {
.procname = "max_addresses", .procname = "max_addresses",
.data = &ipv6_devconf.max_addresses, .data = &ipv6_devconf.max_addresses,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment