mlxsw: spectrum_router: Use ordered workqueue for neigh updates
authorIdo Schimmel <idosch@mellanox.com>
Mon, 6 Feb 2017 15:20:11 +0000 (16:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Feb 2017 16:25:56 +0000 (11:25 -0500)
commite60234ddb541b556b57353dfddca73155977d02f
tree3a213f381a257e396861af789bb87d31adb387f4
parenta0e4761d9bd546eba2e9d3a675863a843624e613
mlxsw: spectrum_router: Use ordered workqueue for neigh updates

We currently associate each neighbour entry with a work item, so it's
not possible to have multiple events queued for the same neighbour
entry. However, this is about to be changed so that the neighbour entry
is only resolved when the work item is scheduled.

The above can result in a mismatch between the kernel's and the device's
neighbour table, unless the associated work items are processed in the
order in which they were submitted.

Do that by migrating the NEIGH_UPDATE work items to be processed in the
ordered workqueue which was recently introduced in mlxsw in commit
a3832b31898f ("mlxsw: core: Create an ordered workqueue for FIB
offload").

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