From: Benjamin Herrenschmidt Date: Wed, 7 Nov 2007 06:17:02 +0000 (+1100) Subject: [POWERPC] Fix si_addr value on low level hash failures X-Git-Tag: v2.6.24-rc3~175^2~4 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a792e75d9b3dec3fc1dfef4a8c40674bbba44641;p=linux-2.6 [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 Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 97c5857faf..c34986835a 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S @@ -904,7 +904,7 @@ handle_page_fault: */ 12: bl .save_nvgprs addi r3,r1,STACK_FRAME_OVERHEAD - lwz r4,_DAR(r1) + ld r4,_DAR(r1) bl .low_hash_fault b .ret_from_except