Re: [PATCH 5.10 491/491] io_uring/poll: correctly handle io_poll_add() return value on update

Jens Axboe
2026-05-01T21:23:36Z

On 5/1/26 3:11 PM, Sasha Levin wrote:
> On Fri, 01 May 2026 11:54:18 +0300, Fedor Pchelkin wrote:
>> The Fixes: tag of upstream 84230ad2d2afb points to 97b388d70b53
>> ("io_uring: handle completions in the core", v5.19), which is NOT
>> present in 5.10 or 5.15. Additionally, in 5.10/5.15 'preq->result'
>> is unsigned so the 'if (preq->result < 0)' check is a no-op, and
>> __io_poll_add() already completes the request when it returns
>> non-zero, leading to a potential double-completion.
>>
>> I would suggest to revert the patch from these trees because there
>> appears to be no real bug to fix.
>
> Agreed. I've reverted both the original backport and the followup
> "fix backport" commit on 5.10 and 5.15.

Please hold off, I have fully tested these. It's quite possible they are
wonky in certain ways, but they currently fix a livelock as well that
you can hit on 5.10/15 which is arguably worse. Double claim + complete
should be handled by the poll grab side, I'm _assuming_ more cosmetic
than anything else.

Please refrain from dropping patches until they have been confirmed by
someone that actually knows the code. I've been busy today and haven't
had time to look into this one just yet. You're just making more work
for me by dropping this you have little insight into.

--
Jens Axboe