Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[POWERPC] Fix si_addr value on low level hash failures

If the low level MMU hash table insertion returns an error (which
can happen in some rare circumstances when the hypervisor refuses
the insertion of a PTE, typically if you try to access junk via
/dev/mem), the generated signal had an incorrect si_addr value due
to a bug in the assembly, which was loading it as a 32 bits quantity
instead of a 64 bits quantity.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by

Benjamin Herrenschmidt and committed by
Paul Mackerras
a792e75d 7e22fa4a

+1 -1
+1 -1
arch/powerpc/kernel/head_64.S
··· 904 904 */ 905 905 12: bl .save_nvgprs 906 906 addi r3,r1,STACK_FRAME_OVERHEAD 907 - lwz r4,_DAR(r1) 907 + ld r4,_DAR(r1) 908 908 bl .low_hash_fault 909 909 b .ret_from_except 910 910