How is this possible - Register r30 contains 0xc2236400 instead of 0xc6236400
Segher Boessenkool
segher at kernel.crashing.org
Wed Jul 4 23:45:15 AEST 2018
On Wed, Jul 04, 2018 at 11:11:59PM +1000, Michael Ellerman wrote:
> Christophe LEROY <christophe.leroy at c-s.fr> writes:
>
> > Kernel Oops at 0xc0334d5c for reading at address 0xc2236450 which
> > corresponds to r30 + 80
> >
> > But r30 should contain what's at r3 + 16 that is at 0xc619ec10 so r30
> > should be c6236400 as shown below (print_hex_dump(regs->gpr[3]) added at
> > end of __die() )
> >
> > So how can r30 contain 0xc2236400 instead ?
>
> The simplest answer is that memory was modified between the time we
> loaded it into r30 and when you print it.
>
> So it did contain 0xc2236400 but has since been modified to now contain
> 0xc6236400.
>
> The thing that makes me less certain, is that c6 would be the correct
> value (I think?), so it's been modified back to the correct value, which
> seems lucky.
>
> Mysterious.
That depends. Is this reproducible at all? It is a single bit flip.
Segher
More information about the Linuxppc-dev
mailing list