linux/drivers/net
Ido Schimmel 602b74eda8 mlxsw: spectrum_switchdev: Do not leak RIFs when removing bridge
When a bridge device is removed, the VLANs are flushed from each
configured port. This causes the ports to decrement the reference count
on the associated FIDs (filtering identifier). If the reference count of
a FID is 1 and it has a RIF (router interface), then this RIF is
destroyed.

However, if no port is member in the VLAN for which a RIF exists, then
the RIF will continue to exist after the removal of the bridge. To
reproduce:

# ip link add name br0 type bridge vlan_filtering 1
# ip link set dev swp1 master br0
# ip link add link br0 name br0.10 type vlan id 10
# ip address add 192.0.2.0/24 dev br0.10
# ip link del dev br0

The RIF associated with br0.10 continues to exist.

Fix this by iterating over all the bridge device uppers when it is
destroyed and take care of destroying their RIFs.

Fixes: 99f44bb352 ("mlxsw: spectrum: Enable L3 interfaces on top of bridge devices")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-08-25 16:28:20 -07:00
..
appletalk
arcnet
bonding Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-02 10:55:32 -07:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00
dsa net: dsa: add support for ksz9897 ethernet switch 2018-08-16 12:24:55 -07:00
ethernet mlxsw: spectrum_switchdev: Do not leak RIFs when removing bridge 2018-08-25 16:28:20 -07:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: ignore devices that are not PCI 2018-08-21 12:02:11 -07:00
ieee802154 ieee802154: hwsim: using right kind of iteration 2018-08-14 09:58:57 -07:00
ipvlan
netdevsim Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-02 10:55:32 -07:00
phy net: dp83640: Mark expected switch fall-throughs 2018-08-11 11:28:34 -07:00
plip
ppp ppp: mppe: Remove VLA usage 2018-08-03 12:54:54 -07:00
slip
team
usb r8152: disable RX aggregation on new Dell TB16 dock 2018-08-20 13:03:29 -07:00
vmxnet3
wan Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-05 13:04:31 -07:00
wimax wimax: usb-tx: mark expected switch fall-through 2018-08-11 11:29:36 -07:00
wireless Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
xen-netback xen-netback: use true and false for boolean values 2018-08-02 14:43:04 -07:00
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c failover: change mtu has RTNL 2018-07-29 12:57:26 -07:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c tun: not use hardcoded mask value 2018-08-04 13:15:11 -07:00
veth.c veth: Free queues on link delete 2018-08-16 12:22:31 -07:00
virtio_net.c virtio_net: remove duplicated include from virtio_net.c 2018-08-13 09:21:05 -07:00
vrf.c
vsockmon.c
vxlan.c
xen-netfront.c xen-netfront: fix warn message as irq device name has '/' 2018-08-14 10:10:35 -07:00