Commit 28c4721b authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

io_uring: replace cmpxchg in fallback with xchg



io_run_ctx_fallback() can use xchg() instead of cmpxchg(). It's simpler
and faster.

Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 2c32395d
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -8484,15 +8484,11 @@ static int io_remove_personalities(int id, void *p, void *data)

static bool io_run_ctx_fallback(struct io_ring_ctx *ctx)
{
	struct callback_head *work, *head, *next;
	struct callback_head *work, *next;
	bool executed = false;

	do {
		do {
			head = NULL;
			work = READ_ONCE(ctx->exit_task_work);
		} while (cmpxchg(&ctx->exit_task_work, work, head) != work);

		work = xchg(&ctx->exit_task_work, NULL);
		if (!work)
			break;