[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