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

From: Dmitry Vyukov
Date: Thu Oct 13 2022 - 03:39:03 EST


On Wed, 12 Oct 2022 at 20:30, Tejun Heo <tj@xxxxxxxxxx> wrote:
>
> 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.

Hi Tejun,

What is the fix?
syzbot needs it to close the bug and report similarly looking issues in future.