On Tue, 16 Jun 2026 at 10:02, David Marchand <[email protected]> wrote: > > On Thu, 11 Jun 2026 at 17:50, Maxime Leroy <[email protected]> wrote: > > > > Some interrupt users have several vectors backed by the same eventfd > > (e.g. several Rx queues behind one DPAA2 portal eventfd). Adding the > > second vector to the same epoll instance then fails with EEXIST. > > > > Upper layers such as ethdev and bbdev already treat -EEXIST as a > > non-fatal duplicate registration (if (ret && ret != -EEXIST)), but > > rte_intr_rx_ctl() lost that information: rte_epoll_ctl() returned -1 and > > rte_intr_rx_ctl() flattened every failure to -EPERM. > > > > Return the negative errno from rte_epoll_ctl() (its documented contract > > is already "a negative value") and stop rte_intr_rx_ctl() from > > flattening errors to -EPERM, so EEXIST reaches the upper layers that > > already handle it; other failures carry their real errno. > > > > Fixes: 9efe9c6cdcac ("eal/linux: add epoll wrappers") > > Fixes: c9f3ec1a0f3f ("eal/linux: add Rx interrupt control function") > > Cc: [email protected] > > Signed-off-by: Maxime Leroy <[email protected]> > > Reviewed-by: David Marchand <[email protected]> > > Nit: the eal/ prefix is only for OS specific / arch specific changes. > The title prefix should be interrupt:
I took this fix directly in main. Applied, thanks. -- David marchand

