On Wed, May 06, 2026 at 03:07:03PM +0100, Anatoly Burakov wrote:
> The PF will check buffer size for being too big, and the chunk sizing code
> correctly calls that out. However, the size was actually still too big
> because `struct virtchnl_queue_vector_maps` already had one queue vector
> as part of its definition, so `chunk_sz` was too big by 1.
>
> Fixes: 292d3b781ac4 ("net/iavf: replace unnecessary hugepage memory
> allocations")
>
> Signed-off-by: Anatoly Burakov <[email protected]>
> ---
Acked-by: Bruce Richardson <[email protected]>
Although there is discussion on-list about this patch, none of it concerns
this patch being wrong in itself, but rather future cleanup work done.
Therefore, I'm considering this patch for merge to next-net-intel shortly.
/Bruce
> drivers/net/intel/iavf/iavf_vchnl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/intel/iavf/iavf_vchnl.c
> b/drivers/net/intel/iavf/iavf_vchnl.c
> index c2f340db81..dd09b0fa61 100644
> --- a/drivers/net/intel/iavf/iavf_vchnl.c
> +++ b/drivers/net/intel/iavf/iavf_vchnl.c
> @@ -1528,7 +1528,7 @@ iavf_config_irq_map_lv_chunk(struct iavf_adapter
> *adapter,
>
> /* for some reason PF side checks for buffer being too big, so adjust
> it down */
> buf_len = sizeof(struct virtchnl_queue_vector_maps) +
> - sizeof(struct virtchnl_queue_vector) * chunk_sz;
> + sizeof(struct virtchnl_queue_vector) * (chunk_sz - 1);
>
> args.ops = VIRTCHNL_OP_MAP_QUEUE_VECTOR;
> args.in_args = (u8 *)map_info;
> --
> 2.47.3
>