|
@@ -144,7 +144,7 @@ static void fib_flush(struct net *net)
|
|
|
}
|
|
|
|
|
|
if (flushed)
|
|
|
- rt_cache_flush(-1);
|
|
|
+ rt_cache_flush(net, -1);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -897,21 +897,22 @@ static void fib_disable_ip(struct net_device *dev, int force)
|
|
|
{
|
|
|
if (fib_sync_down_dev(dev, force))
|
|
|
fib_flush(dev_net(dev));
|
|
|
- rt_cache_flush(0);
|
|
|
+ rt_cache_flush(dev_net(dev), 0);
|
|
|
arp_ifdown(dev);
|
|
|
}
|
|
|
|
|
|
static int fib_inetaddr_event(struct notifier_block *this, unsigned long event, void *ptr)
|
|
|
{
|
|
|
struct in_ifaddr *ifa = (struct in_ifaddr*)ptr;
|
|
|
+ struct net_device *dev = ifa->ifa_dev->dev;
|
|
|
|
|
|
switch (event) {
|
|
|
case NETDEV_UP:
|
|
|
fib_add_ifaddr(ifa);
|
|
|
#ifdef CONFIG_IP_ROUTE_MULTIPATH
|
|
|
- fib_sync_up(ifa->ifa_dev->dev);
|
|
|
+ fib_sync_up(dev);
|
|
|
#endif
|
|
|
- rt_cache_flush(-1);
|
|
|
+ rt_cache_flush(dev_net(dev), -1);
|
|
|
break;
|
|
|
case NETDEV_DOWN:
|
|
|
fib_del_ifaddr(ifa);
|
|
@@ -919,9 +920,9 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
|
|
|
/* Last address was deleted from this interface.
|
|
|
Disable IP.
|
|
|
*/
|
|
|
- fib_disable_ip(ifa->ifa_dev->dev, 1);
|
|
|
+ fib_disable_ip(dev, 1);
|
|
|
} else {
|
|
|
- rt_cache_flush(-1);
|
|
|
+ rt_cache_flush(dev_net(dev), -1);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -949,14 +950,14 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
|
|
|
#ifdef CONFIG_IP_ROUTE_MULTIPATH
|
|
|
fib_sync_up(dev);
|
|
|
#endif
|
|
|
- rt_cache_flush(-1);
|
|
|
+ rt_cache_flush(dev_net(dev), -1);
|
|
|
break;
|
|
|
case NETDEV_DOWN:
|
|
|
fib_disable_ip(dev, 0);
|
|
|
break;
|
|
|
case NETDEV_CHANGEMTU:
|
|
|
case NETDEV_CHANGE:
|
|
|
- rt_cache_flush(0);
|
|
|
+ rt_cache_flush(dev_net(dev), 0);
|
|
|
break;
|
|
|
}
|
|
|
return NOTIFY_DONE;
|