Messages in this thread Patch in this message | | | From | Ram Pai <> | Subject | [RFC v2 10/12] powerpc: Read AMR only if pkey-violation caused the exception. | Date | Fri, 16 Jun 2017 20:52:42 -0700 |
| |
Signed-off-by: Ram Pai <linuxram@us.ibm.com> --- arch/powerpc/kernel/exceptions-64s.S | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index 8db9ef8..a4de1b4 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -493,13 +493,15 @@ EXC_COMMON_BEGIN(data_access_common) ld r12,_MSR(r1) ld r3,PACA_EXGEN+EX_DAR(r13) lwz r4,PACA_EXGEN+EX_DSISR(r13) + std r3,_DAR(r1) + std r4,_DSISR(r1) #ifdef CONFIG_PPC64_MEMORY_PROTECTION_KEYS + andis. r0,r4,DSISR_KEYFAULT@h /* save AMR only if its a key fault */ + beq+ 1f mfspr r5,SPRN_AMR std r5,PACA_AMR(r13) #endif /* CONFIG_PPC64_MEMORY_PROTECTION_KEYS */ - li r5,0x300 - std r3,_DAR(r1) - std r4,_DSISR(r1) +1: li r5,0x300 BEGIN_MMU_FTR_SECTION b do_hash_page /* Try to handle as hpte fault */ MMU_FTR_SECTION_ELSE @@ -565,13 +567,15 @@ EXC_COMMON_BEGIN(instruction_access_common) ld r12,_MSR(r1) ld r3,_NIP(r1) andis. r4,r12,0x5820 + std r3,_DAR(r1) + std r4,_DSISR(r1) #ifdef CONFIG_PPC64_MEMORY_PROTECTION_KEYS + andis. r0,r4,DSISR_KEYFAULT@h /* save AMR only if its a key fault */ + beq+ 1f mfspr r5,SPRN_AMR std r5,PACA_AMR(r13) #endif /* CONFIG_PPC64_MEMORY_PROTECTION_KEYS */ - li r5,0x400 - std r3,_DAR(r1) - std r4,_DSISR(r1) +1: li r5,0x400 BEGIN_MMU_FTR_SECTION b do_hash_page /* Try to handle as hpte fault */ MMU_FTR_SECTION_ELSE -- 1.8.3.1
| |