On Sun, Sep 12, 2021 at 5:56 AM Linus Torvalds
[off-list ref] wrote:
On Thu, Sep 9, 2021 at 6:56 AM Michael S. Tsirkin [off-list ref] wrote:
quoted
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