Re: [PATCH v6 00/27] Cleanups for ixgbe, i40e, iavf, and ice PMD's

Stephen Hemminger
2026-02-19T19:08:59Z

On Thu, 19 Feb 2026 16:22:43 +0000
Anatoly Burakov <anatoly.burakov@intel.com> wrote:

> This patchset is an assortment of cleanups for ixgbe, i40e, iavf, and ice PMD.

AI review had some observations here:

Patch 20/27: net/iavf: avoid rte malloc in MAC address operations

in_args_size is always sizeof(list_req) (full 64-entry struct) regardless of how many addresses are populated. The old code computed an exact-fit length. Probably harmless since num_elements governs PF-side parsing, but worth verifying.

Patch 21/27: net/iavf: avoid rte malloc in IPsec operations

Pre-existing: iavf_ipsec_crypto_status_get() response struct uses struct virtchnl_ipsec_cap but the function reads ipsec_status. The old code had the same mismatch. Since you're refactoring this function, consider fixing the response type to struct virtchnl_ipsec_status.

Patch 23/27: net/iavf: avoid rte malloc in irq map config

iavf_config_irq_map_lv_chunk(): double-offset bug. The loop runs for (i = chunk_start; i < chunk_end; i++) but then indexes map_info->qv_maps[i] (should be [i - chunk_start]) and vf->qv_map[chunk_start + i] (should be [i]). For the second chunk, this writes past the local array and reads the wrong qv_map entries.
iavf_config_irq_map(): the num_vectors counting via if (vmi > max_vmi) only works if vector IDs are assigned in monotonically increasing order across the queue iteration. If not (e.g., round-robin where a lower vmi appears after a higher one), the count will be too low. The old code simply used vf->nb_msix which is always correct.