On Wed, 27 May 2026 00:29:55 +0000
Long Li <[email protected]> wrote:
> > @@ -59,7 +59,8 @@ hn_rndis_rid(struct hn_data *hv)
> > uint32_t rid;
> >
> > do {
> > - rid = rte_atomic32_add_return(&hv->rndis_req_id, 1);
> > + rid = rte_atomic_fetch_add_explicit(&hv->rndis_req_id, 1,
> > +
> > rte_memory_order_seq_cst);
>
> Does rte_atomic_fetch_add_explicit() return the old value of
> hv->rndis_req_id? If yes this is not correct, as the
> rte_atomic32_add_return() used to return the new value.
In this case it is harmless, the req_id field is only used here and
it will just sit one behind the last issued value.
The do { } while (rid == 0) loop will absorb the case when request id
is zero.
For next version, will just add one; simpler and avoids the need to explain.