You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
io_uring/eventfd: ensure io_eventfd_signal() defers another RCU period
io_eventfd_do_signal() is invoked from an RCU callback, but when
dropping the reference to the io_ev_fd, it calls io_eventfd_free()
directly if the refcount drops to zero. This isn't correct, as any
potential freeing of the io_ev_fd should be deferred another RCU grace
period.
Just call io_eventfd_put() rather than open-code the dec-and-test and
free, which will correctly defer it another RCU grace period.
Fixes: 21a091b ("io_uring: signal registered eventfd to process deferred task work")
Reported-by: Jann Horn <[email protected]>
Cc: [email protected]
Tested-by: Li Zetao <[email protected]>
Reviewed-by: Li Zetao<[email protected]>
Reviewed-by: Prasanna Kumar T S M <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
0 commit comments