Re: BUG: sleeping function called from invalid context in __kmalloc

From: Jeff Layton
Date: Fri Feb 07 2020 - 13:52:44 EST


On Fri, 2020-02-07 at 18:44 +0000, Al Viro wrote:
> On Fri, Feb 07, 2020 at 09:44:10AM -0800, syzbot wrote:
> > syzbot has found a reproducer for the following crash on:
> >
> > HEAD commit: 90568ecf Merge tag 'kvm-5.6-2' of git://git.kernel.org/pub..
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=15b26831e00000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=69fa012479f9a62
> > dashboard link: https://syzkaller.appspot.com/bug?extid=98704a51af8e3d9425a9
> > compiler: clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=172182b5e00000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1590aab5e00000
> >
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+98704a51af8e3d9425a9@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> commit 4fbc0c711b2464ee1551850b85002faae0b775d5
> Author: Xiubo Li <xiubli@xxxxxxxxxx>
> Date: Fri Dec 20 09:34:04 2019 -0500
>
> ceph: remove the extra slashes in the server path
>
> is broken. You really should not do blocking allocations under spinlocks.
> What's more, this is pointless - all you do with the results of two such
> calls is strcmp_null, for pity sake... You could do the comparison in
> one pass, no need for all of that. Or you could do a normalized copy when
> you parse options, store that normalized copy in addition to what you are
> storing now and compare _that_.

Thanks Al,

I'll take a closer look and we'll either fix this up or drop it for now.

--
Jeff Layton <jlayton@xxxxxxxxxx>