]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: spectrum_span: Prepare work item to update mirroring agents
authorIdo Schimmel <idosch@mellanox.com>
Thu, 20 Feb 2020 07:07:50 +0000 (09:07 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 20 Feb 2020 18:04:33 +0000 (10:04 -0800)
commit10eab61c2231606cbe9bbc34c201ba059bf36785
tree4b87dde6060485c4c3943d158717d36782aa3347
parentf34921b167f5a82fac4a46fb97eee1f4c89dfc83
mlxsw: spectrum_span: Prepare work item to update mirroring agents

The driver updates its mirroring agents whenever it receives a
notification about an event that can affect these. For example, the
addition of a route might require the driver to change the egress port
of an ERSPAN session.

Currently, RTNL needs to be held when these agents are updates, so the
driver either:

1. Calls directly into the mirroring code, in case RTNL is held

2. Schedules a work item that will take RTNL and call into the mirroring
code

Simplify this by having the mirroring code schedule the work item for
the update instead of requiring callers to schedule a work item
themselves.

The conversion of the callers will be done in the next patch to make
review easier.

This will later allow us to remove RTNL from different parts of the
driver. It will also allow us to only schedule the work item in case
there are active mirroring agents, which is information private to the
mirroring code.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c