summaryrefslogtreecommitdiff
path: root/arch/alpha/mm
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@unseen.parts>2025-02-05 01:35:24 +0300
committerMatt Turner <mattst88@gmail.com>2025-02-14 22:06:04 +0300
commit3b35a171060f846b08b48646b38c30b5d57d17ff (patch)
treec0f5bb6997edc44a881b2aee103842f963ee151c /arch/alpha/mm
parent0a0f7362b0367634a2d5cb7c96226afc116f19c9 (diff)
downloadlinux-3b35a171060f846b08b48646b38c30b5d57d17ff.tar.xz
alpha: align stack for page fault and user unaligned trap handlers
do_page_fault() and do_entUna() are special because they use non-standard stack frame layout. Fix them manually. Cc: stable@vger.kernel.org Tested-by: Maciej W. Rozycki <macro@orcam.me.uk> Tested-by: Magnus Lindholm <linmag7@gmail.com> Tested-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk> Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk> Signed-off-by: Ivan Kokshaysky <ink@unseen.parts> Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'arch/alpha/mm')
-rw-r--r--arch/alpha/mm/fault.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index 8c9850437e67..a9816bbc9f34 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -78,8 +78,8 @@ __load_new_mm_context(struct mm_struct *next_mm)
/* Macro for exception fixup code to access integer registers. */
#define dpf_reg(r) \
- (((unsigned long *)regs)[(r) <= 8 ? (r) : (r) <= 15 ? (r)-16 : \
- (r) <= 18 ? (r)+10 : (r)-10])
+ (((unsigned long *)regs)[(r) <= 8 ? (r) : (r) <= 15 ? (r)-17 : \
+ (r) <= 18 ? (r)+11 : (r)-10])
asmlinkage void
do_page_fault(unsigned long address, unsigned long mmcsr,