diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-03-16 09:50:50 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-03-16 09:50:50 +0100 |
commit | 2b95bd7d58d368fe5dcbe6f4e494847ea082d89d (patch) | |
tree | 48c38d792f31f2fe10b26b03bdf1b10a82ca03a4 /net/mpls/af_mpls.c | |
parent | ffa86c2f1a8862cf58c873f6f14d4b2c3250fb48 (diff) | |
parent | 69eea5a4ab9c705496e912b55a9d312325de19e6 (diff) | |
download | linux-2b95bd7d58d368fe5dcbe6f4e494847ea082d89d.tar.gz linux-2b95bd7d58d368fe5dcbe6f4e494847ea082d89d.tar.xz |
Merge branch 'linus' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/mpls/af_mpls.c')
-rw-r--r-- | net/mpls/af_mpls.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c index 3818686182b2..33211f9a2656 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -1288,7 +1288,8 @@ static void mpls_ifdown(struct net_device *dev, int event) /* fall through */ case NETDEV_CHANGE: nh->nh_flags |= RTNH_F_LINKDOWN; - ACCESS_ONCE(rt->rt_nhn_alive) = rt->rt_nhn_alive - 1; + if (event != NETDEV_UNREGISTER) + ACCESS_ONCE(rt->rt_nhn_alive) = rt->rt_nhn_alive - 1; break; } if (event == NETDEV_UNREGISTER) @@ -2028,6 +2029,7 @@ static void mpls_net_exit(struct net *net) for (index = 0; index < platform_labels; index++) { struct mpls_route *rt = rtnl_dereference(platform_label[index]); RCU_INIT_POINTER(platform_label[index], NULL); + mpls_notify_route(net, index, rt, NULL, NULL); mpls_rt_free(rt); } rtnl_unlock(); |