io_uring/msg_ring: fix flagging remote execution
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 20 Jan 2023 16:38:05 +0000 (16:38 +0000)
committerJens Axboe <axboe@kernel.dk>
Fri, 20 Jan 2023 16:49:29 +0000 (09:49 -0700)
commit56d8e3180c065c9b78ed77afcd0cf99677a4e22f
tree4ef1be544452afbc796a78ea5178016e695c2cb5
parente12d7a46f65ae4b7d58a5e0c1cbfa825cf8d830d
io_uring/msg_ring: fix flagging remote execution

There is a couple of problems with queueing a tw in io_msg_ring_data()
for remote execution. First, once we queue it the target ring can
go away and so setting IORING_SQ_TASKRUN there is not safe. Secondly,
the userspace might not expect IORING_SQ_TASKRUN.

Extract a helper and uniformly use TWA_SIGNAL without TWA_SIGNAL_NO_IPI
tricks for now, just as it was done in the original patch.

Cc: stable@vger.kernel.org
Fixes: 6d043ee1164ca ("io_uring: do msg_ring in target task via tw")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/msg_ring.c