Commit ae79dbf6 authored by Florent Fourcot's avatar Florent Fourcot Committed by David S. Miller

ipv6/addrconf: use a boolean to choose between UNREGISTER/DOWN

"how" was used as a boolean. Change the type to bool, and improve
variable name
Signed-off-by: default avatarFlorent Fourcot <florent.fourcot@wifirst.fr>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d208a42a
...@@ -163,7 +163,7 @@ static void addrconf_leave_anycast(struct inet6_ifaddr *ifp); ...@@ -163,7 +163,7 @@ static void addrconf_leave_anycast(struct inet6_ifaddr *ifp);
static void addrconf_type_change(struct net_device *dev, static void addrconf_type_change(struct net_device *dev,
unsigned long event); unsigned long event);
static int addrconf_ifdown(struct net_device *dev, int how); static int addrconf_ifdown(struct net_device *dev, bool unregister);
static struct fib6_info *addrconf_get_prefix_route(const struct in6_addr *pfx, static struct fib6_info *addrconf_get_prefix_route(const struct in6_addr *pfx,
int plen, int plen,
...@@ -3630,7 +3630,7 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, ...@@ -3630,7 +3630,7 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
* an L3 master device (e.g., VRF) * an L3 master device (e.g., VRF)
*/ */
if (info->upper_dev && netif_is_l3_master(info->upper_dev)) if (info->upper_dev && netif_is_l3_master(info->upper_dev))
addrconf_ifdown(dev, 0); addrconf_ifdown(dev, false);
} }
return NOTIFY_OK; return NOTIFY_OK;
...@@ -3663,9 +3663,9 @@ static bool addr_is_local(const struct in6_addr *addr) ...@@ -3663,9 +3663,9 @@ static bool addr_is_local(const struct in6_addr *addr)
(IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK); (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_LOOPBACK);
} }
static int addrconf_ifdown(struct net_device *dev, int how) static int addrconf_ifdown(struct net_device *dev, bool unregister)
{ {
unsigned long event = how ? NETDEV_UNREGISTER : NETDEV_DOWN; unsigned long event = unregister ? NETDEV_UNREGISTER : NETDEV_DOWN;
struct net *net = dev_net(dev); struct net *net = dev_net(dev);
struct inet6_dev *idev; struct inet6_dev *idev;
struct inet6_ifaddr *ifa, *tmp; struct inet6_ifaddr *ifa, *tmp;
...@@ -3684,7 +3684,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3684,7 +3684,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
* Step 1: remove reference to ipv6 device from parent device. * Step 1: remove reference to ipv6 device from parent device.
* Do not dev_put! * Do not dev_put!
*/ */
if (how) { if (unregister) {
idev->dead = 1; idev->dead = 1;
/* protected by rtnl_lock */ /* protected by rtnl_lock */
...@@ -3698,7 +3698,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3698,7 +3698,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
/* combine the user config with event to determine if permanent /* combine the user config with event to determine if permanent
* addresses are to be removed from address hash table * addresses are to be removed from address hash table
*/ */
if (!how && !idev->cnf.disable_ipv6) { if (!unregister && !idev->cnf.disable_ipv6) {
/* aggregate the system setting and interface setting */ /* aggregate the system setting and interface setting */
int _keep_addr = net->ipv6.devconf_all->keep_addr_on_down; int _keep_addr = net->ipv6.devconf_all->keep_addr_on_down;
...@@ -3736,7 +3736,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3736,7 +3736,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
addrconf_del_rs_timer(idev); addrconf_del_rs_timer(idev);
/* Step 2: clear flags for stateless addrconf */ /* Step 2: clear flags for stateless addrconf */
if (!how) if (!unregister)
idev->if_flags &= ~(IF_RS_SENT|IF_RA_RCVD|IF_READY); idev->if_flags &= ~(IF_RS_SENT|IF_RA_RCVD|IF_READY);
/* Step 3: clear tempaddr list */ /* Step 3: clear tempaddr list */
...@@ -3806,7 +3806,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3806,7 +3806,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
write_unlock_bh(&idev->lock); write_unlock_bh(&idev->lock);
/* Step 5: Discard anycast and multicast list */ /* Step 5: Discard anycast and multicast list */
if (how) { if (unregister) {
ipv6_ac_destroy_dev(idev); ipv6_ac_destroy_dev(idev);
ipv6_mc_destroy_dev(idev); ipv6_mc_destroy_dev(idev);
} else { } else {
...@@ -3816,7 +3816,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) ...@@ -3816,7 +3816,7 @@ static int addrconf_ifdown(struct net_device *dev, int how)
idev->tstamp = jiffies; idev->tstamp = jiffies;
/* Last: Shot the device (if unregistered) */ /* Last: Shot the device (if unregistered) */
if (how) { if (unregister) {
addrconf_sysctl_unregister(idev); addrconf_sysctl_unregister(idev);
neigh_parms_release(&nd_tbl, idev->nd_parms); neigh_parms_release(&nd_tbl, idev->nd_parms);
neigh_ifdown(&nd_tbl, dev); neigh_ifdown(&nd_tbl, dev);
...@@ -4038,7 +4038,7 @@ static void addrconf_dad_work(struct work_struct *w) ...@@ -4038,7 +4038,7 @@ static void addrconf_dad_work(struct work_struct *w)
in6_ifa_hold(ifp); in6_ifa_hold(ifp);
addrconf_dad_stop(ifp, 1); addrconf_dad_stop(ifp, 1);
if (disable_ipv6) if (disable_ipv6)
addrconf_ifdown(idev->dev, 0); addrconf_ifdown(idev->dev, false);
goto out; goto out;
} }
...@@ -7187,9 +7187,9 @@ void addrconf_cleanup(void) ...@@ -7187,9 +7187,9 @@ void addrconf_cleanup(void)
for_each_netdev(&init_net, dev) { for_each_netdev(&init_net, dev) {
if (__in6_dev_get(dev) == NULL) if (__in6_dev_get(dev) == NULL)
continue; continue;
addrconf_ifdown(dev, 1); addrconf_ifdown(dev, true);
} }
addrconf_ifdown(init_net.loopback_dev, 1); addrconf_ifdown(init_net.loopback_dev, true);
/* /*
* Check hash table. * Check hash table.
......
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