On Sun, Sep 12, 2021 at 5:56 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Thu, Sep 9, 2021 at 6:56 AM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > > > > NB: when merging this with > > b542e383d8c0 ("eventfd: Make signal recursion protection a task bit") > > from Linus' tree, replace eventfd_signal_count with > > eventfd_signal_allowed, and drop the export of eventfd_wake_count from > > ("eventfd: Export eventfd_wake_count to modules"). > > What? No. That can't be right. > > Do you mean "replace eventfd_signal_count with !eventfd_signal_allowed()"? > > Because if I read the logic correctly, the issue is that > 'vduse_vq_kick()' will call eventfd_signal(). > > Which it must not do it eventfd_signal_allowed() returns false. > > So if eventfd_signal_allowed() is _not_ set, the code needs to defer > it to the workqueue. > > No? > Yes, that's my fault. I just check how the eventfd_signal_allowed() works in fs/aio.c (also needs a fix) when I see the fix for the merge conflicts. Sorry for that. Thanks, Yongji