EX_R3 is used only for a small section of the bad stack handler. Merge it with EX_DAR.
Signed-off-by: Nicholas Piggin <npig...@gmail.com> --- arch/powerpc/include/asm/exception-64s.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h index ba03db14e1e8..aaee57f0e5ad 100644 --- a/arch/powerpc/include/asm/exception-64s.h +++ b/arch/powerpc/include/asm/exception-64s.h @@ -34,12 +34,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 @@ -49,6 +48,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 __ASSEMBLY__ /* -- 2.11.0