From: Benjamin Herrenschmidt This patch fixes si_addr on some segfaults in 64 bits mode, it used to be bogus (address not passed to do_page_fault by the asm code after a failure to set an SLB entry). --- 25-akpm/arch/ppc64/kernel/head.S | 2 ++ 1 files changed, 2 insertions(+) diff -puN arch/ppc64/kernel/head.S~ppc64-si_addr-fix arch/ppc64/kernel/head.S --- 25/arch/ppc64/kernel/head.S~ppc64-si_addr-fix 2004-04-03 02:59:49.441836640 -0800 +++ 25-akpm/arch/ppc64/kernel/head.S 2004-04-03 02:59:49.445836032 -0800 @@ -767,6 +767,7 @@ DataAccessSLB_common: beq fast_exception_return /* Return if we succeeded */ addi r3,r1,STACK_FRAME_OVERHEAD DO_COPY_EE() + ld r4,_DAR(r1) li r6,0x380 li r5,0 bl .save_remaining_regs @@ -810,6 +811,7 @@ InstructionAccessSLB_common: addi r3,r1,STACK_FRAME_OVERHEAD DO_COPY_EE() + mr r4,r22 /* SRR0 = NIA */ li r6,0x480 li r5,0 bl .save_remaining_regs _