diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2017-05-21 15:15:49 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-06-20 14:22:01 +0200 |
commit | 635942ae53cc5d4049c2c4a5bd2ad819e3a47ee5 (patch) | |
tree | 0f69e05c2455cb8bfa38733973ce1a16f94871ed | |
parent | powerpc/64s/paca: EX_LR can be merged with EX_DAR (diff) | |
download | linux-635942ae53cc5d4049c2c4a5bd2ad819e3a47ee5.tar.xz linux-635942ae53cc5d4049c2c4a5bd2ad819e3a47ee5.zip |
powerpc/64s/paca: EX_R3 can be merged with EX_DAR
EX_R3 is used only for a small section of the bad stack handler.
Merge it with EX_DAR.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/include/asm/exception-64s.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index 90f4b771df02..f42a49a274a6 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h @@ -45,12 +45,11 @@ #define EX_DAR 40 #define EX_DSISR 48 #define EX_CCR 52 -#define EX_R3 56 -#define EX_CFAR 64 -#define EX_PPR 72 -#define EX_CTR 80 +#define EX_CFAR 56 +#define EX_PPR 64 +#define EX_CTR 72 -#define EX_SIZE 11 /* size in u64 units */ +#define EX_SIZE 10 /* size in u64 units */ /* * EX_LR is only used in EXSLB and where it does not overlap with EX_DAR @@ -60,6 +59,13 @@ */ #define EX_LR EX_DAR +/* + * EX_R3 is only used by the bad_stack handler. bad_stack reloads and + * saves DAR from SPRN_DAR, and EX_DAR is not used. So EX_R3 can overlap + * with EX_DAR. + */ +#define EX_R3 EX_DAR + #ifdef CONFIG_RELOCATABLE #define __EXCEPTION_RELON_PROLOG_PSERIES_1(label, h) \ mfspr r11,SPRN_##h##SRR0; /* save SRR0 */ \ |