diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-31 18:06:50 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-31 18:06:50 -0400 |
commit | caacf05e5ad1abf0a2864863da4e33024bc68ec6 (patch) | |
tree | 9a82e97a072e288f604bd3dbbe07e1796581fad0 /net/ipv4/fib_frontend.c | |
parent | c5038a8327b980a5b279fa193163c468011de009 (diff) |
ipv4: Properly purge netdev references on uncached routes.
When a device is unregistered, we have to purge all of the
references to it that may exist in the entire system.
If a route is uncached, we currently have no way of accomplishing
this.
So create a global list that is scanned when a network device goes
down. This mirrors the logic in net/core/dst.c's dst_ifdown().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_frontend.c')
-rw-r--r-- | net/ipv4/fib_frontend.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 8732cc7920ed..c43ae3fba792 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
@@ -1046,6 +1046,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo | |||
1046 | 1046 | ||
1047 | if (event == NETDEV_UNREGISTER) { | 1047 | if (event == NETDEV_UNREGISTER) { |
1048 | fib_disable_ip(dev, 2, -1); | 1048 | fib_disable_ip(dev, 2, -1); |
1049 | rt_flush_dev(dev); | ||
1049 | return NOTIFY_DONE; | 1050 | return NOTIFY_DONE; |
1050 | } | 1051 | } |
1051 | 1052 | ||