From: Jie Liu <[email protected]> This series adds the Stars SXE2 (Wuxi Stars Micro System) Ethernet driver, including the common driver (drivers/common/sxe2), the net driver (drivers/net/sxe2), and its documentation.
The driver supports: - Legacy and switchdev modes with VF representors - Scalar and vectorized (SSE/AVX2/AVX512/NEON) Rx/Tx paths - FNAV and ACL flow engines with per-flow statistics - RSS, QinQ, IPsec, Traffic Management and multi-process support In addition to the driver functionality, the series fixes a number of correctness issues found during review, including a security context leak in the device init error path, a NULL dereference in the vectorized Tx mbuf release path, an out-of-bounds representor ID access, and a representor LSC loop counter type mismatch. The command channel log messages and ioctl channel handling are also aligned with the reference implementation. This is v3 of the series, incorporating review feedback. All patches build independently and no ABI changes are introduced. Jie Liu (51): common/sxe2: fix null pointer in class driver remove common/sxe2: allow munmap during kernel reset net/sxe2: fix VF PCI device ID net/sxe2: fix MSIX register width in PF map table net/sxe2: restore pf and port index caps assignment net/sxe2: fix VSI lifecycle management net/sxe2: initialize stats in representor device init net/sxe2: use base device name for representor naming net/sxe2: propagate LSC event to VF representors net/sxe2: validate IPsec key length against maximum limit net/sxe2: rename representor VSI ID fields net/sxe2: clean up duplicate function declarations net/sxe2: fix null VSI dereference in device info net/sxe2: fill MAC and queue counts in device info net/sxe2: fix QinQ and RSS offload capability report net/sxe2: use regular write for mapped registers net/sxe2: move PCI register read macro to common header net/sxe2: validate PCI map resource type net/sxe2: guard PCI BAR unmap when not initialized net/sxe2: fix null dereference in dev uninit net/sxe2: fix duplicated cleanup in dev close net/sxe2: align dev init and cleanup order net/sxe2: simplify switchdev representor matching net/sxe2: probe all requested PF ports net/sxe2: rename fnav cid manager symbols to flow net/sxe2: move tunnel port helpers into flow module net/sxe2: add ACL engine event statistics support net/sxe2: guard Rx queue event FD free in unregister net/sxe2: refactor primary process MP message handling net/sxe2: refactor Tx queue reset operations net/sxe2: unify vectorized Tx buffer handling net/sxe2: refine vectorized Tx/Rx mode setup net/sxe2: fix RSS action attribute validation net/sxe2: restore PF-only guard in udp tunnel port add net/sxe2: align flow meta proc priority handling with V3 net/sxe2: restore link update call in status query net/sxe2: validate representor ID against VF count net/sxe2: use primary VSI ID for representor VSI net/sxe2: wrap command params fill debug log in macro net/sxe2: restore Rx queue buffer split fill support net/sxe2: skip tunnel config fill on get failure net/sxe2: skip flow id assignment on filter add failure net/sxe2: fix command channel log messages net/sxe2: align command structs with historical kernel layout common/sxe2: fix ioctl channel log and close handling doc/sxe2: remove drv-sw-stats parameter documentation net/sxe2: harden ACL flow count resource handling net/sxe2: fix device init and representor matching issues net/sxe2: use correct loop counter type for representor LSC net/sxe2: restore NULL check in vectorized Tx mbuf release net/sxe2: simplify Rx queue buffer split fill helper doc/guides/nics/sxe2.rst | 58 +---- drivers/common/sxe2/sxe2_common.c | 6 +- drivers/common/sxe2/sxe2_ioctl_chnl.c | 18 +- drivers/net/sxe2/sxe2_cmd_chnl.c | 200 +++++++++++++++-- drivers/net/sxe2/sxe2_cmd_chnl.h | 15 +- drivers/net/sxe2/sxe2_drv_cmd.h | 45 ++-- drivers/net/sxe2/sxe2_dump.c | 10 +- drivers/net/sxe2/sxe2_ethdev.c | 202 ++++++++++------- drivers/net/sxe2/sxe2_ethdev.h | 13 +- drivers/net/sxe2/sxe2_ethdev_repr.c | 13 +- drivers/net/sxe2/sxe2_flow.c | 250 +++++++++++++++++---- drivers/net/sxe2/sxe2_flow.h | 6 +- drivers/net/sxe2/sxe2_flow_define.h | 15 +- drivers/net/sxe2/sxe2_flow_parse_action.c | 37 ++- drivers/net/sxe2/sxe2_flow_parse_pattern.c | 113 ---------- drivers/net/sxe2/sxe2_flow_parse_pattern.h | 6 - drivers/net/sxe2/sxe2_ipsec.c | 5 + drivers/net/sxe2/sxe2_irq.c | 27 ++- drivers/net/sxe2/sxe2_mac.c | 9 +- drivers/net/sxe2/sxe2_mp.c | 59 ++--- drivers/net/sxe2/sxe2_queue.c | 2 + drivers/net/sxe2/sxe2_queue.h | 7 +- drivers/net/sxe2/sxe2_rx.c | 3 +- drivers/net/sxe2/sxe2_security.c | 1 + drivers/net/sxe2/sxe2_switchdev.c | 16 +- drivers/net/sxe2/sxe2_tx.c | 42 +++- drivers/net/sxe2/sxe2_tx.h | 4 + drivers/net/sxe2/sxe2_txrx.c | 19 +- drivers/net/sxe2/sxe2_txrx_poll.h | 2 - drivers/net/sxe2/sxe2_txrx_vec.c | 73 +++--- drivers/net/sxe2/sxe2_txrx_vec.h | 1 + drivers/net/sxe2/sxe2_txrx_vec_avx2.c | 10 +- drivers/net/sxe2/sxe2_txrx_vec_avx512.c | 133 +---------- drivers/net/sxe2/sxe2_txrx_vec_common.h | 9 +- drivers/net/sxe2/sxe2_txrx_vec_neon.c | 219 +++++++++++------- drivers/net/sxe2/sxe2_txrx_vec_sse.c | 10 +- drivers/net/sxe2/sxe2_vsi.c | 8 +- 37 files changed, 964 insertions(+), 702 deletions(-) -- 2.52.0

