On Fri, 9 Oct 2026 14:40:34 +0530
Hemant Agrawal <[email protected]> wrote:
> This series collects a set of fixes and enhancements for the NXP DPAA
> bus, mempool, dma, crypto and net drivers targeting 26.11.
>
> It includes memory-leak and resource-cleanup fixes on the device
> remove/close paths, more robust frame queue and congestion-group
> shutdown, secondary-process safety guards, BPID and cgrid lifecycle
> handling, and several new features: offline (O/H) port device support,
> enhanced virtual storage profile (VSP) port support, fmcless Rx queue
> configuration via devargs, Rx/Tx taildrop threshold devargs, non
> fmX-macY shared Ethernet naming, and DMA scatter-gather and
> errata-workaround devargs. Documentation and release notes are updated
> accordingly.
>
> v23:
I did build test on this and it fails with clang-23 which has more
detection of unused variables.
FAILED: [code=1]
drivers/libtmp_rte_bus_dpaa.a.p/bus_dpaa_base_qbman_bman_driver.c.o
clang-23 -Idrivers/libtmp_rte_bus_dpaa.a.p -Idrivers -I../drivers
-Idrivers/bus/dpaa -I../drivers/bus/dpaa -I../drive
rs/bus/dpaa/base -I../drivers/bus/dpaa/include -I../drivers/bus/dpaa/base/qbman
-Ilib/eal/common -I../lib/eal/common
-I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include
-Ilib/eal/linux/include -I../lib/eal/linux/inclu
de -Ilib/eal/x86/include -I../lib/eal/x86/include -I../kernel/linux -Ilib/eal
-I../lib/eal -Ilib/kvargs -I../lib/kvar
gs -Ilib/log -I../lib/log -Ilib/metrics -I../lib/metrics -Ilib/telemetry
-I../lib/telemetry -Ilib/argparse -I../lib/a
rgparse -Idrivers/common/dpaax -I../drivers/common/dpaax
-I../drivers/common/dpaax/caamflib -Ilib/eventdev -I../lib/e
ventdev -Ilib/ring -I../lib/ring -Ilib/ethdev -I../lib/ethdev -Ilib/net
-I../lib/net -Ilib/mbuf -I../lib/mbuf -Ilib/m
empool -I../lib/mempool -Ilib/meter -I../lib/meter -Ilib/hash -I../lib/hash
-Ilib/rcu -I../lib/rcu -Ilib/timer -I../l
ib/timer -Ilib/cryptodev -I../lib/cryptodev -Ilib/dmadev -I../lib/dmadev
-fdiagnostics-color=always -D_FILE_OFFSET_BI
TS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3 -include rte_config.h
-Wvla -Wcast-qual -Wcomma -Wdeprecated -
Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wold-styl
e-definition -Wpointer-arith -Wshadow -Wsign-compare -Wstrict-prototypes
-Wundef -Wwrite-strings -Wno-missing-field-i
nitializers -D_GNU_SOURCE -fPIC -march=native -mrtm -DALLOW_EXPERIMENTAL_API
-DALLOW_INTERNAL_API -Wno-format-truncat
ion -Wno-address-of-packed-member -Wno-cast-qual -Wno-pointer-arith
-DRTE_COMPONENT_CLASS=pmd_bus -DRTE_COMPONENT_NAM
E=dpaa -DRTE_LOG_DEFAULT_LOGTYPE=bus.dpaa -DRTE_ANNOTATE_LOCKS -Wthread-safety
-MD -MQ drivers/libtmp_rte_bus_dpaa.a.
p/bus_dpaa_base_qbman_bman_driver.c.o -MF
drivers/libtmp_rte_bus_dpaa.a.p/bus_dpaa_base_qbman_bman_driver.c.o.d -o dr
ivers/libtmp_rte_bus_dpaa.a.p/bus_dpaa_base_qbman_bman_driver.c.o -c
../drivers/bus/dpaa/base/qbman/bman_driver.c
../drivers/bus/dpaa/base/qbman/bman_driver.c:19:12: error: variable
'bman_ip_rev' set but not used [-Werror,-Wunused-
but-set-global]
19 | static u16 bman_ip_rev;
| ^
$ git grep bman_ip_rev
drivers/bus/dpaa/base/qbman/bman_driver.c:static u16 bman_ip_rev;
drivers/bus/dpaa/base/qbman/bman_driver.c: bman_ip_rev =
BMAN_REV10;
drivers/bus/dpaa/base/qbman/bman_driver.c: bman_ip_rev =
BMAN_REV20;
drivers/bus/dpaa/base/qbman/bman_driver.c: bman_ip_rev =
BMAN_REV21;
drivers/bus/dpaa/base/qbman/bman_driver.c: bman_ip_rev =
BMAN_REV21;
There are some non-urgent things from AI feedback that you can cleanup later.
Applies cleanly to main (1d020e1). HEAD and each of the 27 commits
build with -Dwerror=true (gcc 13.3, x86) for the DPAA drivers. Not
built for arm64.
v23 resolves the v22 items. The 01/27 and 11/27 commit messages now
give the right reasons, 19/27 and 20/27 document that a malformed
value fails the probe, and 26/27 releases FQIDs in contiguous runs,
only after a successful shutdown.
No errors or warnings.
Info
----
Patch 25/27, 26/27: Each qman_create_fq() also takes an FQ lookup
table entry (CONFIG_FSL_QMAN_FQ_LOOKUP_MAX, 32K, on 64-bit), and
only qman_destroy_fq() returns it. Nothing calls that, so every
probe/close cycle leaks 2 entries for the oldev port and 4098 for
dpaa_sec; the dpaa_sec part predates this series. Suggested
follow-up: mark the FQ out of service when qman_shutdown_fq()
succeeds,
fq->state = qman_fq_state_oos;
and call qman_destroy_fq(fq, 0) after each successful shutdown.
For the oldev FQs (QMAN_FQ_FLAG_DYNAMIC_FQID) that also replaces
qman_release_fqid().
Pre-existing, not introduced here: in FMCLESS mode net/dpaa never
releases the Rx FQIDs it gets from qman_alloc_fqid_range(), on close
or on probe failure.