IO-Uring Archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: io-uring <io-uring@vger.kernel.org>
Subject: [PATCH] io_uring/poll: fix upper bits poll updating
Date: Wed, 13 Mar 2024 15:26:26 -0600	[thread overview]
Message-ID: <14abef4b-c217-4ec1-93d6-9c0950e972b9@kernel.dk> (raw)

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: stable@vger.kernel.org
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 <axboe@kernel.dk>

---

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


             reply	other threads:[~2024-03-13 21:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-13 21:26 Jens Axboe [this message]
2024-03-13 22:08 ` [PATCH] io_uring/poll: fix upper bits poll updating Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=14abef4b-c217-4ec1-93d6-9c0950e972b9@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).