[RFC v5 52/57] arm64: kernel: Annotate non-standard stack frame functions

From: Julien Thierry
Date: Thu Jan 09 2020 - 11:09:41 EST


From: Raphael Gault <raphael.gault@xxxxxxx>

Annotate assembler functions which are callable but do not
setup a correct stack frame.

Signed-off-by: Raphael Gault <raphael.gault@xxxxxxx>
Signed-off-by: Julien Thierry <jthierry@xxxxxxxxxx>
Cc: Marc Zyngier <maz@xxxxxxxxxx>
Cc: James Morse <james.morse@xxxxxxx>
Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
---
arch/arm64/kernel/hyp-stub.S | 3 +++
arch/arm64/kvm/hyp-init.S | 3 +++
2 files changed, 6 insertions(+)

diff --git a/arch/arm64/kernel/hyp-stub.S b/arch/arm64/kernel/hyp-stub.S
index 73d46070b315..8917d42f38c7 100644
--- a/arch/arm64/kernel/hyp-stub.S
+++ b/arch/arm64/kernel/hyp-stub.S
@@ -6,6 +6,7 @@
* Author: Marc Zyngier <marc.zyngier@xxxxxxx>
*/

+#include <linux/frame.h>
#include <linux/init.h>
#include <linux/linkage.h>
#include <linux/irqchip/arm-gic-v3.h>
@@ -42,6 +43,7 @@ ENTRY(__hyp_stub_vectors)
ventry el1_fiq_invalid // FIQ 32-bit EL1
ventry el1_error_invalid // Error 32-bit EL1
ENDPROC(__hyp_stub_vectors)
+asm_stack_frame_non_standard __hyp_stub_vectors

.align 11

@@ -69,6 +71,7 @@ el1_sync:
9: mov x0, xzr
eret
ENDPROC(el1_sync)
+asm_stack_frame_non_standard el1_sync

.macro invalid_vector label
\label:
diff --git a/arch/arm64/kvm/hyp-init.S b/arch/arm64/kvm/hyp-init.S
index 160be2b4696d..63deea39313d 100644
--- a/arch/arm64/kvm/hyp-init.S
+++ b/arch/arm64/kvm/hyp-init.S
@@ -12,6 +12,7 @@
#include <asm/pgtable-hwdef.h>
#include <asm/sysreg.h>
#include <asm/virt.h>
+#include <linux/frame.h>

.text
.pushsection .hyp.idmap.text, "ax"
@@ -118,6 +119,7 @@ CPU_BE( orr x4, x4, #SCTLR_ELx_EE)
/* Hello, World! */
eret
ENDPROC(__kvm_hyp_init)
+asm_stack_frame_non_standard __kvm_hyp_init

ENTRY(__kvm_handle_stub_hvc)
cmp x0, #HVC_SOFT_RESTART
@@ -159,6 +161,7 @@ reset:
eret

ENDPROC(__kvm_handle_stub_hvc)
+asm_stack_frame_non_standard __kvm_handle_stub_hvc

.ltorg

--
2.21.0