mlxsw: spectrum_router: Flush FIB tables during fini
authorIdo Schimmel <idosch@mellanox.com>
Mon, 14 Nov 2016 10:26:32 +0000 (11:26 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Nov 2016 21:45:16 +0000 (16:45 -0500)
commitac571de999e14b87890cb960ad6f03fbdde6abc8
tree85afb4689162f0be63b92611c418b2bccdd90d22
parentc51e424dc79e1428afc4d697cdb6a07f7af70cbf
mlxsw: spectrum_router: Flush FIB tables during fini

Since commit b45f64d16d45 ("mlxsw: spectrum_router: Use FIB notifications
instead of switchdev calls") we reflect to the device the entire FIB
table and not only FIBs that point to netdevs created by the driver.

During module removal, FIBs of the second type are removed following
NETDEV_UNREGISTER events sent. The other FIBs are still present in both
the driver's cache and the device's table.

Fix this by iterating over all the FIB tables in the device and flush
them. There's no need to take locks, as we're the only writer.

Fixes: b45f64d16d45 ("mlxsw: spectrum_router: Use FIB notifications instead of switchdev calls")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c