On Sat, Mar 01, 2025 at 10:35:48PM +0300, Dmitry Kozlyuk wrote:
> 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()?

That makes sense. Thanks Dmitry.

Reply via email to