Commit 9db032bb authored by Ido Schimmel's avatar Ido Schimmel Committed by David S. Miller

mlxsw: spectrum_router: Don't destroy RIF if L3 slave

We usually destroy the netdev's router interface (RIF) when the last IP
address is removed from it.

However, we shouldn't do that if it's enslaved to an L3 master device.
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 57837885
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include <linux/in6.h> #include <linux/in6.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/inetdevice.h> #include <linux/inetdevice.h>
#include <linux/netdevice.h>
#include <net/netevent.h> #include <net/netevent.h>
#include <net/neighbour.h> #include <net/neighbour.h>
#include <net/arp.h> #include <net/arp.h>
...@@ -2660,7 +2661,7 @@ static bool mlxsw_sp_rif_should_config(struct mlxsw_sp_rif *r, ...@@ -2660,7 +2661,7 @@ static bool mlxsw_sp_rif_should_config(struct mlxsw_sp_rif *r,
return true; return true;
return false; return false;
case NETDEV_DOWN: case NETDEV_DOWN:
if (r && !in_dev->ifa_list) if (r && !in_dev->ifa_list && !netif_is_l3_slave(r->dev))
return true; return true;
/* It is possible we already removed the RIF ourselves /* It is possible we already removed the RIF ourselves
* if it was assigned to a netdev that is now a bridge * if it was assigned to a netdev that is now a bridge
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment