@@ -998,6 +998,14 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
fib_disable_ip(dev, 2, -1);
return NOTIFY_DONE;
}
+ if (event == NETDEV_UNREGISTER_BATCH) {
+ /* The batch unregister is only called on the first
+ * device in the list of devices being unregistered.
+ * Therefore we should not pass dev_net(dev) in here.
+ */
+ rt_cache_flush_batch(NULL);
+ return NOTIFY_DONE;
+ }
if (!in_dev)
return NOTIFY_DONE;
@@ -1020,13 +1028,6 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
case NETDEV_CHANGE:
rt_cache_flush(dev_net(dev), 0);
break;
- case NETDEV_UNREGISTER_BATCH:
- /* The batch unregister is only called on the first
- * device in the list of devices being unregistered.
- * Therefore we should not pass dev_net(dev) in here.
- */
- rt_cache_flush_batch(NULL);
- break;
}
return NOTIFY_DONE;
}