From: Jens Axboe Date: Fri, 23 Jan 2026 20:58:03 +0000 (-0700) Subject: io_uring/io-wq: handle !sysctl_hung_task_timeout_secs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=816095894c0f44aaba4372d92c874121af687596;p=thirdparty%2Flinux.git io_uring/io-wq: handle !sysctl_hung_task_timeout_secs If the hung_task_timeout sysctl is set to 0, then we'll end up busy looping inside io_wq_exit_workers() after an earlier commit switched to using wait_for_completion_timeout(). Use the maximum schedule timeout value for that case. Fixes: 1f293098a313 ("io_uring/io-wq: don't trigger hung task for syzbot craziness") Reported-by: Chris Mason Signed-off-by: Jens Axboe --- diff --git a/io_uring/io-wq.c b/io_uring/io-wq.c index aaf1dfc217636..3b55feb620d9e 100644 --- a/io_uring/io-wq.c +++ b/io_uring/io-wq.c @@ -1340,6 +1340,8 @@ static void io_wq_exit_workers(struct io_wq *wq) * up waiting more than IO_URING_EXIT_WAIT_MAX. */ timeout = sysctl_hung_task_timeout_secs * HZ / 2; + if (!timeout) + timeout = MAX_SCHEDULE_TIMEOUT; warn_timeout = jiffies + IO_URING_EXIT_WAIT_MAX; do { if (wait_for_completion_timeout(&wq->worker_done, timeout))