linux-imx/include/linux/mlx5
Vlad Buslov dd58edc328 net/mlx5e: Extend mod header entry with reference counter
List of flows attached to mod header entry is used as implicit reference
counter (mod header entry is deallocated when list becomes free) and as a
mechanism to obtain mod header entry that flow is attached to (through list
head). This is not safe when concurrent modification of list of flows
attached to mod header entry is possible. Proper atomic reference counter
is required to support concurrent access.

As a preparation for extending mod header with reference counting, extract
code that lookups and deletes mod header entry into standalone put/get
helpers. In order to remove this dependency on external locking, extend mod
header entry with reference counter to manage its lifetime and extend flow
structure with direct pointer to mod header entry that flow is attached to.

To remove code duplication between legacy and switchdev mode
implementations that both support mod_hdr functionality, store mod_hdr
table in dedicated structure used by both fdb and kernel namespaces. New
table structure is extended with table lock by one of the following patches
in this series. Implement helper function to get correct mod_hdr table
depending on flow namespace.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Jianbo Liu <jianbol@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
2019-08-09 14:54:09 -07:00
..
accel.h net/mlx5: Kconfig, Better organize compilation flags 2019-07-05 16:29:19 -07:00
cmd.h
cq.h net/mlx5: Report EQE data upon CQ completion 2019-07-03 21:00:20 +03:00
device.h Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2019-07-04 16:42:59 -04:00
doorbell.h net/mlx5: Remove spinlock support from mlx5_write64 2019-04-02 12:49:37 -07:00
driver.h net/mlx5: Add flow counter pool 2019-08-01 12:33:30 -07:00
eq.h net/mlx5: Use event mask based on device capabilities 2019-07-03 20:55:45 +03:00
eswitch.h Merge mlx5-next into rdma for-next 2019-07-05 10:16:19 -03:00
fs_helpers.h {net,IB}/mlx5: Add ipsec helper 2018-04-04 12:06:27 -06:00
fs.h net/mlx5e: Extend mod header entry with reference counter 2019-08-09 14:54:09 -07:00
mlx5_ifc_fpga.h net/mlx5: Accel, add TLS rx offload routines 2018-07-16 00:13:11 -07:00
mlx5_ifc.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-08-06 18:44:57 -07:00
port.h net/mlx5e: ethtool, Add support for EEPROM high pages query 2019-05-01 14:39:16 -07:00
qp.h IB/mlx5: Support set qp counter 2019-07-05 10:22:55 -03:00
transobj.h net/mlx5: Introduce new TIR creation core API 2019-04-24 12:33:37 -07:00
vport.h net/mlx5: Introduce and use mlx5_eswitch_get_total_vports() 2019-07-03 12:50:42 -07:00