Subject: Re: [next] arm: Internal error: Oops: 5 PC is at __read_once_word_nocheck

From: "Russell King (Oracle)" <[email-masked]>
Date: Wed, 9 Mar 2022 15:06:56 +0000

On Wed, Mar 09, 2022 at 03:57:32PM +0100, Ard Biesheuvel wrote:
> On Wed, 9 Mar 2022 at 15:44, Naresh Kamboju <[email-masked]> wrote:
> >
> > On Wed, 9 Mar 2022 at 19:37, Naresh Kamboju <[email-masked]> wrote:
> > >
> > > On Wed, 9 Mar 2022 at 16:16, Ard Biesheuvel <[email-masked]> wrote:
> > > >
> > > > On Wed, 9 Mar 2022 at 11:37, Russell King (Oracle)
> > > > <[email-masked]> wrote:
> > > > >
> > > > > On Wed, Mar 09, 2022 at 03:18:12PM +0530, Naresh Kamboju wrote:
> > > > > > While boting linux next-20220308 on BeagleBoard-X15 and qemu arm the following
> > > > > > kernel crash reported which is CONFIG_KASAN enabled build [1] & [2].
> > > > >
> > > > > The unwinder is currently broken in linux-next. Please try reverting
> > > > > 532319b9c418 ("ARM: unwind: disregard unwind info before stack frame is
> > > > > set up")
> >
> > I have reverted the suggested commit and built and boot failed due to reported
> > kernel crash [1].
> >
> > - Naresh
> >
> 
> Thanks Naresh,
> 
> This looks like it might be related to the issue Russell just sent a fix for:
> https://lore.kernel.org/linux-arm-kernel/[email-masked]/T/#t
> 
> Could you please try that?

Well, we unwound until:

 __irq_svc from migrate_disable+0x0/0x70

and then crashed - and the key thing there is that we're at the start
of migrate_disable() when we took an interrupt.

For some reason, this triggers an access to address 0x10, which faults.
We then try unwinding again, and successfully unwind all the way back
to the same point (the line above) which then causes the unwinder to
again access address 0x10, and the cycle repeats with the stack
growing bigger and bigger.

I'd suggest also testing without the revert but with my patch.

Thanks.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!