[PATCH 3/3] bbdev: wrong fix for MinGW 13

Bruce Richardson bruce.richardson at intel.com
Tue Aug 19 15:51:25 CEST 2025


On Wed, Aug 13, 2025 at 05:25:25PM +0200, Thomas Monjalon wrote:
> After an upgrade to MinGW version 13, compilation breaks:
> 
> In function 'rte_bbdev_queue_ops_dump':
> lib/bbdev/rte_bbdev.c:1269:63: error:
> 	'%s' directive argument is null [-Werror=format-overflow=]
> 	fprintf(f, "  Enqueue Status Counters %s %" PRIu64 "\n",
> 
> The enqueue status string may be null if the index is too high,
> because RTE_BBDEV_ENQ_STATUS_SIZE_MAX is defined to include
> padding for future enum insertion.
> This padding case must be checked
> to avoid printing a dump of a non-existing status.
> 
> Fixes: 353e3639d458 ("bbdev: add queue debug dump")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
>  lib/bbdev/rte_bbdev.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c
> index e0f8c8eb0d..d662a2b364 100644
> --- a/lib/bbdev/rte_bbdev.c
> +++ b/lib/bbdev/rte_bbdev.c
> @@ -1248,6 +1248,7 @@ rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_id, FILE *f)
>  	struct rte_bbdev_queue_data *q_data;
>  	struct rte_bbdev_stats *stats;
>  	uint16_t i;
> +	const char *status_str;

Minor nit, but I'd suggest defining this inside the for loop at first use.

>  	struct rte_bbdev *dev = get_dev(dev_id);
>  
>  	VALID_DEV_OR_RET_ERR(dev, dev_id);
> @@ -1264,11 +1265,15 @@ rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_id, FILE *f)
>  			dev->data->name, queue_id);
>  	fprintf(f, "  Last Enqueue Status %s\n",
>  			rte_bbdev_enqueue_status_str(q_data->enqueue_status));
> -	for (i = 0; i < RTE_BBDEV_ENQ_STATUS_SIZE_MAX; i++)
> +	for (i = 0; i < RTE_BBDEV_ENQ_STATUS_SIZE_MAX; i++) {
> +		status_str = rte_bbdev_enqueue_status_str(i);
> +		if (status_str == NULL)
> +			continue;
>  		if (q_data->queue_stats.enqueue_status_count[i] > 0)
>  			fprintf(f, "  Enqueue Status Counters %s %" PRIu64 "\n",
> -					rte_bbdev_enqueue_status_str(i),
> +					status_str,
>  					q_data->queue_stats.enqueue_status_count[i]);
> +	}
>  	stats = &dev->data->queues[queue_id].queue_stats;
>  
>  	fprintf(f, "  Enqueue Count %" PRIu64 " Warning %" PRIu64 " Error %" PRIu64 "\n",
> -- 
> 2.47.1
> 


More information about the dev mailing list