[PATCH v4 1/2] net/ice: remove malloc call for admin queue msg

Loftus, Ciara ciara.loftus at intel.com
Wed Mar 4 12:59:52 CET 2026


> Subject: [PATCH v4 1/2] net/ice: remove malloc call for admin queue msg
> 
> The max message size is defined as 4k, so we don't need a special
> malloc/free (and especially not rte_malloc/rte_free) for each call into
> the function - especially if no data is present. Replace the malloc
> calls with a local memory buffer instead.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>

Acked-by: Ciara Loftus <ciara.loftus at intel.com>

> ---
>  drivers/net/intel/ice/ice_ethdev.c | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/net/intel/ice/ice_ethdev.c
> b/drivers/net/intel/ice/ice_ethdev.c
> index 0d6b030536..a59ca2e047 100644
> --- a/drivers/net/intel/ice/ice_ethdev.c
> +++ b/drivers/net/intel/ice/ice_ethdev.c
> @@ -1440,17 +1440,14 @@ ice_handle_aq_msg(struct rte_eth_dev *dev)
>  {
>  	struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
>  	struct ice_ctl_q_info *cq = &hw->adminq;
> -	struct ice_rq_event_info event;
> +	unsigned char buf[ICE_AQ_MAX_BUF_LEN] = {0};
> +	struct ice_rq_event_info event = {
> +		.msg_buf = buf,
> +		.buf_len = sizeof(buf),
> +	};
>  	uint16_t pending, opcode;
>  	int ret;
> 
> -	event.buf_len = ICE_AQ_MAX_BUF_LEN;
> -	event.msg_buf = rte_zmalloc(NULL, event.buf_len, 0);
> -	if (!event.msg_buf) {
> -		PMD_DRV_LOG(ERR, "Failed to allocate mem");
> -		return;
> -	}
> -
>  	pending = 1;
>  	while (pending) {
>  		ret = ice_clean_rq_elem(hw, cq, &event, &pending);
> @@ -1477,7 +1474,6 @@ ice_handle_aq_msg(struct rte_eth_dev *dev)
>  			break;
>  		}
>  	}
> -	rte_free(event.msg_buf);
>  }
>  #endif
> 
> --
> 2.51.0



More information about the dev mailing list