On Wed, Jul 04, 2018 at 11:11:59PM +1000, Michael Ellerman wrote:
Christophe LEROY [off-list ref] writes:
quoted
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