Browse Source

[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>
Benjamin Herrenschmidt 17 years ago
parent
commit
a792e75d9b
1 changed files with 1 additions and 1 deletions
  1. 1 1
      arch/powerpc/kernel/head_64.S

+ 1 - 1
arch/powerpc/kernel/head_64.S

@@ -904,7 +904,7 @@ handle_page_fault:
  */
  */
 12:	bl	.save_nvgprs
 12:	bl	.save_nvgprs
 	addi	r3,r1,STACK_FRAME_OVERHEAD
 	addi	r3,r1,STACK_FRAME_OVERHEAD
-	lwz	r4,_DAR(r1)
+	ld	r4,_DAR(r1)
 	bl	.low_hash_fault
 	bl	.low_hash_fault
 	b	.ret_from_except
 	b	.ret_from_except