Thread (20 messages) 20 messages, 3 authors, 2020-11-30

Re: [PATCH 10/11] arm64: entry: fix NMI {user,kernel}->kernel transitions

From: Mark Rutland <mark.rutland@arm.com>
Date: 2020-11-26 18:43:29
Subsystem: arm64 port (aarch64 architecture), the rest · Maintainers: Catalin Marinas, Will Deacon, Linus Torvalds

On Thu, Nov 26, 2020 at 12:36:01PM +0000, Mark Rutland wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/arm64/include/asm/exception.h b/arch/arm64/include/asm/exception.h
index d579b2e6db7a..0756191f44f6 100644
--- a/arch/arm64/include/asm/exception.h
+++ b/arch/arm64/include/asm/exception.h
+void arm64_enter_nmi(struct pt_regs *regs);
+void arm64_exit_nmi(struct pt_regs *regs);
[...]
-asmlinkage __kprobes notrace unsigned long
+asmlinkage noinstr unsigned long
 __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 {
 	unsigned long ret;
 
-	nmi_enter();
+	arm64_enter_nmi();
 
 	ret = _sdei_handler(regs, arg);
 
-	nmi_exit();
+	arm64_exit_nmi();
 
 	return ret;
 }
Whoops; I forgot to pass the regs here.

Will, could you please apply the fixup patch below? I've build+boot
tested with the CKI config atop rc5, and made sure I hadn't done
likewise in any of the other callers.

Thanks,
Mark

---->8----
From a055c2d9e24ddb2383b930ea36dad01d5036c801 Mon Sep 17 00:00:00 2001
From: Mark Rutland <mark.rutland@arm.com>
Date: Thu, 26 Nov 2020 18:29:13 +0000
Subject: [PATCH] arm64: sdei: fix arm64_{enter,exit}_nmi() calls

When converting __sdei_handler() to the new arm64 NMI entry/exit
helpers I missed the `regs` argument, leading to a build failure when
CONFIG_ARM_SDE_INTERFACE is selected.

Fix this by adding the missing argument to both calls. Build a boot
tested with CONFIG_ARM_SDE_INTERFACE selected.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
---
 arch/arm64/kernel/sdei.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kernel/sdei.c b/arch/arm64/kernel/sdei.c
index 162646f0d151..793c46d6a447 100644
--- a/arch/arm64/kernel/sdei.c
+++ b/arch/arm64/kernel/sdei.c
@@ -229,11 +229,11 @@ __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 {
 	unsigned long ret;
 
-	arm64_enter_nmi();
+	arm64_enter_nmi(regs);
 
 	ret = _sdei_handler(regs, arg);
 
-	arm64_exit_nmi();
+	arm64_exit_nmi(regs);
 
 	return ret;
 }
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help