Hi Andre,

> @@ -386,7 +386,7 @@ rte_rcu_qsbr_dq_reclaim(struct rte_rcu_qsbr_dq *dq, 
> unsigned int n,
>
>      cnt = 0;
>
> -    char data[dq->esize];
> +    char *data = alloca(dq->esize);
>      /* Check reader threads quiescent state and reclaim resources */
>      while (cnt < n &&
>          rte_ring_dequeue_bulk_elem_start(dq->r, &data,

In the last line, "&data" was equivalent to "data" when "data" was an array.
This is no longer true when "data" is a pointer.
Removing "&" fixes the issue.
Maybe coccinelle can check for similar mistakes caused by mechanical
replacement of VLA to alloca()?

Reply via email to