Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
BUG: sleeping function called from invalid context in __fdget_pos
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007ffe357aec1f R14: 00007f3774d7b300 R15: 0000000000022000
BUG: sleeping function called from invalid context at kernel/locking/mutex.c:938
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 10173, name: syz-executor.3
no locks held by syz-executor.3/10173.
Preemption disabled at:
[<ffffffff812b1044>] kernel_fpu_begin_mask+0x64/0x260 arch/x86/kernel/fpu/core.c:156
CPU: 1 PID: 10173 Comm: syz-executor.3 Not tainted 5.14.0-rc3-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105
___might_sleep.cold+0x1f1/0x237 kernel/sched/core.c:9154
__mutex_lock_common kernel/locking/mutex.c:938 [inline]
__mutex_lock+0x9a/0x10a0 kernel/locking/mutex.c:1104
__fdget_pos+0xe9/0x100 fs/file.c:974
fdget_pos include/linux/file.h:75 [inline]
ksys_read+0x6e/0x250 fs/read_write.c:625
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x41935c
Code: ec 28 48 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 fc ff ff 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 34 44 89 c7 48 89 44 24 08 e8 2f fd ff ff 48
RSP: 002b:00007f3774d7b170 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
RAX: ffffffffffffffda RBX: ffffffffffffffff RCX: 000000000041935c
RDX: 000000000000000f RSI: 00007f3774d7b1e0 RDI: 0000000000000005
RBP: 00007f3774d7b1d0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007ffe357aec1f R14: 00007f3774d7b300 R15: 0000000000022000
BUG: scheduling while atomic: syz-executor.3/10173/0x00000002
no locks held by syz-executor.3/10173.
Modules linked in:
Preemption disabled at:
[<ffffffff812b1044>] kernel_fpu_begin_mask+0x64/0x260 arch/x86/kernel/fpu/core.c:156
Tested on:
commit: ff117646 Linux 5.14-rc3
git tree: upstream
console output:
https://syzkaller.appspot.com/x/log.txt?x=15b46bcc300000
kernel config:
https://syzkaller.appspot.com/x/.config?x=a9e88c90e7151783
dashboard link:
https://syzkaller.appspot.com/bug?extid=20191dc583eff8602d2d
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.1