• J
    io_uring: ensure SQPOLL startup is triggered before error shutdown · eb85890b
    Jens Axboe 提交于
    syzbot reports the following hang:
    
    INFO: task syz-executor.0:12538 can't die for more than 143 seconds.
    task:syz-executor.0  state:D stack:28352 pid:12538 ppid:  8423 flags:0x00004004
    Call Trace:
     context_switch kernel/sched/core.c:4324 [inline]
     __schedule+0x90c/0x21a0 kernel/sched/core.c:5075
     schedule+0xcf/0x270 kernel/sched/core.c:5154
     schedule_timeout+0x1db/0x250 kernel/time/timer.c:1868
     do_wait_for_common kernel/sched/completion.c:85 [inline]
     __wait_for_common kernel/sched/completion.c:106 [inline]
     wait_for_common kernel/sched/completion.c:117 [inline]
     wait_for_completion+0x168/0x270 kernel/sched/completion.c:138
     io_sq_thread_finish+0x96/0x580 fs/io_uring.c:7152
     io_sq_offload_create fs/io_uring.c:7929 [inline]
     io_uring_create fs/io_uring.c:9465 [inline]
     io_uring_setup+0x1fb2/0x2c20 fs/io_uring.c:9550
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    which is due to exiting after the SQPOLL thread has been created, but
    hasn't been started yet. Ensure that we always complete the startup
    side when waiting for it to exit.
    
    Reported-by: syzbot+c927c937cba8ef66dd4a@syzkaller.appspotmail.com
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    eb85890b
io_uring.c 239.3 KB