[PATCH 2/9] ARM: traps: use get_kernel_nofault instead of set_fs()

Arnd Bergmann arnd at arndb.de
Fri Sep 18 08:36:23 EDT 2020


On Fri, Sep 18, 2020 at 9:42 AM Russell King - ARM Linux admin
<linux at armlinux.org.uk> wrote:
>
> On Thu, Sep 17, 2020 at 07:29:37PM +0200, Arnd Bergmann wrote:
> > On Tue, Sep 8, 2020 at 8:15 AM Christoph Hellwig <hch at lst.de> wrote:
> >
> > I looked through the history now and the only code path I could
> > find that would arrive here this way is from bad_mode(), indicating
> > that there is probably a hardware bug or the contents of *regs are
> > corrupted.
>
> Yes, that's correct.  It isn't something entirely theoretical, although
> we never see it now, it used to happen in the distant past due to saved
> regs corruption.  If bad_mode() ever gets called, all bets are off and
> we're irrecoverably crashing.
>
> Note that in that case, while user_mode(regs) may return true or false,
> regs->ARM_sp and regs->ARM_lr are always the SVC mode stack and return
> address after regs has been stacked, and not the expected values for
> the parent context (which we have most likely long since destroyed.)

Ok, I have rewritten the patch and my changelog text accordingly, sending
an updated version now.

Thanks,

      Arnd



More information about the linux-arm-kernel mailing list