public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCH] io_uring/poll: fix upper bits poll updating
@ 2024-03-13 21:26 Jens Axboe
  2024-03-13 22:08 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Jens Axboe @ 2024-03-13 21:26 UTC (permalink / raw)
  To: io-uring

If IORING_POLL_UPDATE_EVENTS is used to updated the mask of a pending
poll request, then we mask off the bottom 16 bits and mask in the new
ones. But this prevents updating higher entry bits, which wasn't the
intent.

Rather than play masking games, simply overwrite the existing poll
entry mask with the new one.

Cc: [email protected]
Fixes: b69de288e913 ("io_uring: allow events and user_data update of running poll requests")
Link: https://github.com/axboe/liburing/issues/1099
Signed-off-by: Jens Axboe <[email protected]>

---

diff --git a/io_uring/poll.c b/io_uring/poll.c
index 5f779139cae1..721f42a14c3e 100644
--- a/io_uring/poll.c
+++ b/io_uring/poll.c
@@ -1030,8 +1030,7 @@ int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags)
 		if (poll_update->update_events) {
 			struct io_poll *poll = io_kiocb_to_cmd(preq, struct io_poll);
 
-			poll->events &= ~0xffff;
-			poll->events |= poll_update->events & 0xffff;
+			poll->events = poll_update->events;
 			poll->events |= IO_POLL_UNMASK;
 		}
 		if (poll_update->update_user_data)
-- 
Jens Axboe


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] io_uring/poll: fix upper bits poll updating
  2024-03-13 21:26 [PATCH] io_uring/poll: fix upper bits poll updating Jens Axboe
@ 2024-03-13 22:08 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2024-03-13 22:08 UTC (permalink / raw)
  To: io-uring

On 3/13/24 3:26 PM, Jens Axboe wrote:
> If IORING_POLL_UPDATE_EVENTS is used to updated the mask of a pending
> poll request, then we mask off the bottom 16 bits and mask in the new
> ones. But this prevents updating higher entry bits, which wasn't the
> intent.
> 
> Rather than play masking games, simply overwrite the existing poll
> entry mask with the new one.

This can't work, some of the upper flags will decide state. So just
disregard this one!

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-13 22:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-13 21:26 [PATCH] io_uring/poll: fix upper bits poll updating Jens Axboe
2024-03-13 22:08 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox