Re: [syzbot] BUG: sleeping function called from invalid context in kernfs_walk_and_get_ns

From: Tejun Heo
Date: Wed Oct 12 2022 - 14:30:58 EST


On Wed, Oct 12, 2022 at 07:14:35AM -0700, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 282342f2dc97 Add linux-next specific files for 20220830
> git tree: linux-next
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=14b47c63080000
> kernel config: https://syzkaller.appspot.com/x/.config?x=c7b70bd555c649f4
> dashboard link: https://syzkaller.appspot.com/bug?extid=9baaae5fc5795e2e6acf
> compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12acb375080000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1718658b080000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+9baaae5fc5795e2e6acf@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1498
> in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 3603, name: syz-executor323
> preempt_count: 1, expected: 0
> RCU nest depth: 0, expected: 0
> INFO: lockdep is turned off.
> irq event stamp: 0
> hardirqs last enabled at (0): [<0000000000000000>] 0x0
> hardirqs last disabled at (0): [<ffffffff814710e0>] copy_process+0x20f0/0x7120 kernel/fork.c:2199
> softirqs last enabled at (0): [<ffffffff81471128>] copy_process+0x2138/0x7120 kernel/fork.c:2203
> softirqs last disabled at (0): [<0000000000000000>] 0x0
> Preemption disabled at:
> [<0000000000000000>] 0x0
> CPU: 1 PID: 3603 Comm: syz-executor323 Not tainted 6.0.0-rc3-next-20220830-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/22/2022
> Call Trace:
> <TASK>
> __dump_stack lib/dump_stack.c:88 [inline]
> dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
> __might_resched.cold+0x222/0x26b kernel/sched/core.c:9896
> down_read+0x71/0x450 kernel/locking/rwsem.c:1498
> kernfs_walk_and_get_ns+0xcc/0x3a0 fs/kernfs/dir.c:897
> kernfs_walk_and_get include/linux/kernfs.h:600 [inline]
> cgroup_get_from_path+0x61/0x610 kernel/cgroup/cgroup.c:6647

The fix for this one is already queued in cgroup/for-6.1-fixes. Will send
that to linus once rc1 drops.

Thanks.

--
tejun