diff options
author | David S. Miller <davem@davemloft.net> | 2017-03-15 21:59:10 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-15 21:59:10 +0300 |
commit | 101c431492d297dd0d111b461d8d324895676bee (patch) | |
tree | 06d8a02a4fd91acdd6c31340452e85feaac4ecb7 /net/mpls | |
parent | 9c79ddaa0f962d1f26537a670b0652ff509a6fe0 (diff) | |
parent | 95422dec6bd4a7c57444743f7b1bb375335a6298 (diff) | |
download | linux-101c431492d297dd0d111b461d8d324895676bee.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/broadcom/genet/bcmgenet.c
net/core/sock.c
Conflicts were overlapping changes in bcmgenet and the
lockdep handling of sockets.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mpls')
-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 0c5d111abe36..f7a08e5f9763 100644 --- a/net/mpls/af_mpls.c +++ b/net/mpls/af_mpls.c @@ -1317,7 +1317,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) @@ -2110,6 +2111,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(); |