You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
UPSTREAM: io_uring: kill goto error handling in io_sqpoll_wait_sq()
Hunk extracted from commit70aacfe661upstream. If the sqpoll thread has died, the out condition doesn't remove the waiting task from the waitqueue. The goto and check are not needed, just make it a break condition after setting the error value. That ensures that we always remove ourselves from sqo_sq_wait waitqueue. Bug: 259534862 Reported-by: Xingyuan Mo <hdthky0@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit0f544353fe) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: I453c3e23a2f0c5ce6a8dd73dac020ec6f32994ca
This commit is contained in:
committed by
Treehugger Robot
parent
7c31ae524c
commit
25280f263d
@@ -9029,7 +9029,7 @@ static int io_sqpoll_wait_sq(struct io_ring_ctx *ctx)
|
||||
|
||||
if (unlikely(ctx->sqo_dead)) {
|
||||
ret = -EOWNERDEAD;
|
||||
goto out;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!io_sqring_full(ctx))
|
||||
@@ -9039,7 +9039,6 @@ static int io_sqpoll_wait_sq(struct io_ring_ctx *ctx)
|
||||
} while (!signal_pending(current));
|
||||
|
||||
finish_wait(&ctx->sqo_sq_wait, &wait);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user