numam-dpdk/drivers/net/cxgbe
Rahul Lakkireddy 97e02581a1 net/cxgbe: fix races on flow API operations
When rules are being inserted from multiple cores, there are several
race conditions during rte_flow operations.

For example, when inserting rules from 2 cores simultaneously, both
the cores try to fetch a free available filter entry and they both
end up fetching the same entry. Both of them start overwriting the
same filter entry before sending to firmware, which results in wrong
rule being inserted to hardware.

Fix the races by adding spinlock to serialize the rte_flow operations.

Fixes: ee61f5113b ("net/cxgbe: parse and validate flows")
Fixes: 9eb2c9a480 ("net/cxgbe: implement flow create operation")
Fixes: da23bc9d33 ("net/cxgbe: implement flow destroy operation")
Fixes: 8d3c12e193 ("net/cxgbe: implement flow query operation")
Fixes: 86910379d3 ("net/cxgbe: implement flow flush operation")
Cc: stable@dpdk.org

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
2019-10-08 12:14:32 +02:00
..
base net/cxgbe: fix races on flow API operations 2019-10-08 12:14:32 +02:00
clip_tbl.c net/cxgbe: use relative paths for includes 2018-12-21 16:22:41 +01:00
clip_tbl.h net/cxgbe: add Compressed Local IP region 2018-07-04 22:20:41 +02:00
cxgbe_compat.h net/cxgbe: use dynamic logging for debug prints 2019-10-07 15:00:57 +02:00
cxgbe_ethdev.c net/cxgbe: add devarg to control Tx coalescing 2019-10-07 15:00:57 +02:00
cxgbe_filter.c net/cxgbe: support matching VLAN via flow API 2019-10-07 15:00:57 +02:00
cxgbe_filter.h net/cxgbe: fix slot allocation for IPv6 flows 2019-10-07 15:00:57 +02:00
cxgbe_flow.c net/cxgbe: fix races on flow API operations 2019-10-08 12:14:32 +02:00
cxgbe_flow.h net/cxgbe: increase completion wait time for flow operations 2018-11-14 00:35:53 +01:00
cxgbe_main.c net/cxgbe: fix races on flow API operations 2019-10-08 12:14:32 +02:00
cxgbe_ofld.h net/cxgbe: support to delete flows in HASH region 2018-07-04 22:20:41 +02:00
cxgbe_pfvf.h net/cxgbe: fetch max Tx coalesce limit from firmware 2019-10-07 15:00:57 +02:00
cxgbe.h net/cxgbe: add devarg to control Tx coalescing 2019-10-07 15:00:57 +02:00
cxgbevf_ethdev.c net/cxgbe: add devarg to control Tx coalescing 2019-10-07 15:00:57 +02:00
cxgbevf_main.c net/cxgbe: fetch max Tx coalesce limit from firmware 2019-10-07 15:00:57 +02:00
l2t.c net/cxgbe: add prefix to global functions 2019-10-07 15:00:57 +02:00
l2t.h net/cxgbe: add prefix to global functions 2019-10-07 15:00:57 +02:00
Makefile net/cxgbe: use relative paths for includes 2018-12-21 16:22:41 +01:00
meson.build net/cxgbe: add API to program hardware MPS table 2018-09-14 20:08:41 +02:00
mps_tcam.c net: add rte prefix to ether defines 2019-05-24 13:34:45 +02:00
mps_tcam.h net: add rte prefix to ether defines 2019-05-24 13:34:45 +02:00
rte_pmd_cxgbe_version.map cxgbe: add pmd skeleton 2015-06-30 22:46:42 +02:00
sge.c net/cxgbe: fetch max Tx coalesce limit from firmware 2019-10-07 15:00:57 +02:00