Re: [syzbot] WARNING: can't access registers at entry_SYSCALL_64_after_hwframe

From: Josh Poimboeuf
Date: Thu Feb 16 2023 - 15:26:16 EST


On Thu, Feb 16, 2023 at 10:51:44AM -0800, Josh Poimboeuf wrote:
> On Thu, Feb 16, 2023 at 04:14:25PM +0100, Dmitry Vyukov wrote:
> > On Thu, 16 Feb 2023 at 15:13, syzbot
> > <syzbot+dac365e3ce07c3d0e496@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > Hello,
> > >
> > > syzbot found the following issue on:
> > >
> > > HEAD commit: 9d9019bcea1a Add linux-next specific files for 20230215
> > > git tree: linux-next
> > > console output: https://syzkaller.appspot.com/x/log.txt?x=144edcc8c80000
> > > kernel config: https://syzkaller.appspot.com/x/.config?x=a64cbb8ad0da425e
> > > dashboard link: https://syzkaller.appspot.com/bug?extid=dac365e3ce07c3d0e496
> > > compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
> > >
> > > Unfortunately, I don't have any reproducer for this issue yet.
> > >
> > > Downloadable assets:
> > > disk image: https://storage.googleapis.com/syzbot-assets/70f0c6bb5351/disk-9d9019bc.raw.xz
> > > vmlinux: https://storage.googleapis.com/syzbot-assets/7eed8686df34/vmlinux-9d9019bc.xz
> > > kernel image: https://storage.googleapis.com/syzbot-assets/84bb6da6b00e/bzImage-9d9019bc.xz
> > >
> > > IMPORTANT: if you fix the issue, please add the following tag to the commit:
> > > Reported-by: syzbot+dac365e3ce07c3d0e496@xxxxxxxxxxxxxxxxxxxxxxxxx
> > >
> > > WARNING: can't access registers at entry_SYSCALL_64_after_hwframe+0x63/0xcd
> >
> >
> > This is another splat of reports we started getting recently. Looks
> > like this may be ORC unwinder related as well.
>
> Yeah... Also:
>
> https://lkml.kernel.org/lkml/202302161616.85f13863-oliver.sang@xxxxxxxxx
> https://lkml.kernel.org/lkml/CACT4Y+YzZb2vscjBLiJ-p-ghbu77o851gbESfE=nZebXqfgE4g@xxxxxxxxxxxxxx
>
> The problem seems to be commit ffb1b4a41016 ("x86/unwind/orc: Add
> 'signal' field to ORC metadata") but right now I don't know why.

Ah, figured it out:

$ tools/objtool/objtool --dump=orc vmlinux |grep signal:1 |wc -l
0

The 'signal' bit isn't getting propagated from the unwind hints to the
ORC entries :-(

Will post a fix shortly.

--
Josh