[PATCH v27 00/25] NXP DPAA driver enhancements and fixes
Stephen Hemminger
stephen at networkplumber.org
Fri Oct 16 18:39:05 CEST 2026
On Fri, 16 Oct 2026 16:49:33 +0530
Hemant Agrawal <hemant.agrawal at nxp.com> 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 shutdown, secondary-process
> safety guards, BPID lifecycle handling, and several new features:
> enhanced virtual storage profile (VSP) port support, fmcless Rx queue
> configuration, non fmX-macY shared Ethernet naming, and DMA
> scatter-gather and errata-workaround devargs. Documentation and release
> notes are updated accordingly.
>
> V27:
> - fixed qm_channel_pool_num check issue.
> - fixed commit message as devarg for fmcless rxq number was removed.
> - Added missing export internal symbol and fq destroy.
> - merged both FQ shutdown patches as we cannot change the sequence
> because of the dependency.
> - mac_idx has a user which is dpaa flow so no change. Added static to
> g_fmc_model and updated release notes.
> - Issues reported in v25 which are not handled, were optional, so
> skipping them.
FYI - what I do is feed the patch into a Claude project with existing
AGENTS.md file. The chat continues as versions get sent to email so
the context window has all the versions of the patch. This lets it see
the progress and check if previous findings were addressed.
Review of [PATCH v27 00/25] NXP DPAA fixes and enhancements
Series applies cleanly to 26.11-rc1 and every commit builds with
-Dwerror=true. The fixes are now first. 08 cherry-picks cleanly onto
v24.11 and v25.11, and 06 applies there once 01-05 are in.
v26 Warnings on 12 (now 14) and 20 are addressed. The 24 Warning is
only partly fixed.
Warning
=======
[PATCH v27 24/25] drivers: improve DPAA crypto fq resource handling
The lookup table slot is now freed at the end of qman_shutdown_fq():
if (!ret) {
fq->state = qman_fq_state_oos;
qman_destroy_fq(fq, 0);
}
That block sits before the out: label, so the early exit for an FQ
already out of service skips it:
if (state == QM_MCR_NP_STATE_OOS) {
DPAA_BUS_DEBUG("fqid(0x%x) Already in OOS", fqid);
goto out; /* Already OOS, no need to do anymore checks */
}
Of the RTE_DPAA_MAX_RX_QUEUE (4096) inq[] FQs, dpaa_sec_dev_init()
only does qman_create_fq(). qman_init_fq() runs from dpaa_sec_init_rx()
when a session attaches, so almost all of them are still OOS at uninit
and in the init_error3 path. Their slots still leak, about 4096 per
remove/probe cycle, and still point into the freed dev_private.
Move the block below the label so the OOS exit is covered too:
out:
if (!ret) {
fq->state = qman_fq_state_oos;
qman_destroy_fq(fq, 0);
}
return ret;
This also changes qman_shutdown_fq() for every caller, so say so in
the commit message: a successful shutdown now releases the FQ's lookup
table slot.
Info
====
[PATCH v27 09/25] net/dpaa: prefix fmlib device helpers
Making g_fmc_model static is not in the commit message. Unused
mac_idx[] is still global in dpaa_flow.c:
const uint8_t mac_idx[] = {-1, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1};
Remove it here.
Still open from v25, unchanged, optional:
04 pre-existing: dpaa_dev_init() error path frees cgr_rx/cgr_tx
without qman_delete_cgr()
14 QMAN_MAX_FQID, QMAN_CHANNEL_PME and QMAN_CHANNEL_PME_REV3 unused;
dpaa_get_qm_channel_pool_num() needs no export
17 FMC_PORT_NAME_OFFLINE branch unreachable
21 bm_buffer_get64_from_be() should be a static inline function
24 fqids[RTE_DPAA_MAX_RX_QUEUE] is 16 KB on the probe stack
More information about the dev
mailing list