From: Chen Zhongjin <chenzhongjin@huawei.com> To: <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-arch@vger.kernel.org> Cc: <jthierry@redhat.com>, <catalin.marinas@arm.com>, <will@kernel.org>, <masahiroy@kernel.org>, <jpoimboe@redhat.com>, <peterz@infradead.org>, <ycote@redhat.com>, <herbert@gondor.apana.org.au>, <mark.rutland@arm.com>, <davem@davemloft.net>, <ardb@kernel.org>, <maz@kernel.org>, <tglx@linutronix.de>, <luc.vanoostenryck@gmail.com>, <chenzhongjin@huawei.com> Subject: [RFC PATCH v4 37/37] arm64: kvm: Annotate stack state for guest enter/exit code Date: Fri, 29 Apr 2022 17:43:55 +0800 [thread overview] Message-ID: <20220429094355.122389-38-chenzhongjin@huawei.com> (raw) In-Reply-To: <20220429094355.122389-1-chenzhongjin@huawei.com> From: Julien Thierry <jthierry@redhat.com> Symbol __guest_enter is called from C code, with a valid stack pointer. Symbol __guest_exit is reached when resuming EL2 execution, and the previous stack pointer gets restored. Add adequate unwind hints. Signed-off-by: Julien Thierry <jthierry@redhat.com> --- arch/arm64/kvm/hyp/entry.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/kvm/hyp/entry.S b/arch/arm64/kvm/hyp/entry.S index 045d4481c820..0c621b8389e2 100644 --- a/arch/arm64/kvm/hyp/entry.S +++ b/arch/arm64/kvm/hyp/entry.S @@ -15,6 +15,7 @@ #include <asm/kvm_mmu.h> #include <asm/kvm_mte.h> #include <asm/kvm_ptrauth.h> +#include <asm/unwind_hints.h> .text @@ -22,6 +23,7 @@ * u64 __guest_enter(struct kvm_vcpu *vcpu); */ SYM_CODE_START(__guest_enter) + UNWIND_HINT_FUNC // x0: vcpu // x1-x17: clobbered by macros // x29: guest context @@ -110,6 +112,7 @@ SYM_INNER_LABEL(__guest_exit, SYM_L_GLOBAL) // x1: vcpu // x2-x29,lr: vcpu regs // vcpu x0-x1 on the stack + UNWIND_HINT_FUNC sp_offset=16 add x1, x1, #VCPU_CONTEXT -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Chen Zhongjin <chenzhongjin@huawei.com> To: <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-arch@vger.kernel.org> Cc: <jthierry@redhat.com>, <catalin.marinas@arm.com>, <will@kernel.org>, <masahiroy@kernel.org>, <jpoimboe@redhat.com>, <peterz@infradead.org>, <ycote@redhat.com>, <herbert@gondor.apana.org.au>, <mark.rutland@arm.com>, <davem@davemloft.net>, <ardb@kernel.org>, <maz@kernel.org>, <tglx@linutronix.de>, <luc.vanoostenryck@gmail.com>, <chenzhongjin@huawei.com> Subject: [RFC PATCH v4 37/37] arm64: kvm: Annotate stack state for guest enter/exit code Date: Fri, 29 Apr 2022 17:43:55 +0800 [thread overview] Message-ID: <20220429094355.122389-38-chenzhongjin@huawei.com> (raw) In-Reply-To: <20220429094355.122389-1-chenzhongjin@huawei.com> From: Julien Thierry <jthierry@redhat.com> Symbol __guest_enter is called from C code, with a valid stack pointer. Symbol __guest_exit is reached when resuming EL2 execution, and the previous stack pointer gets restored. Add adequate unwind hints. Signed-off-by: Julien Thierry <jthierry@redhat.com> --- arch/arm64/kvm/hyp/entry.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/kvm/hyp/entry.S b/arch/arm64/kvm/hyp/entry.S index 045d4481c820..0c621b8389e2 100644 --- a/arch/arm64/kvm/hyp/entry.S +++ b/arch/arm64/kvm/hyp/entry.S @@ -15,6 +15,7 @@ #include <asm/kvm_mmu.h> #include <asm/kvm_mte.h> #include <asm/kvm_ptrauth.h> +#include <asm/unwind_hints.h> .text @@ -22,6 +23,7 @@ * u64 __guest_enter(struct kvm_vcpu *vcpu); */ SYM_CODE_START(__guest_enter) + UNWIND_HINT_FUNC // x0: vcpu // x1-x17: clobbered by macros // x29: guest context @@ -110,6 +112,7 @@ SYM_INNER_LABEL(__guest_exit, SYM_L_GLOBAL) // x1: vcpu // x2-x29,lr: vcpu regs // vcpu x0-x1 on the stack + UNWIND_HINT_FUNC sp_offset=16 add x1, x1, #VCPU_CONTEXT -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-04-29 9:47 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-29 9:43 [RFC PATCH v4 00/37] objtool: add base support for arm64 Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 01/37] tools: Add some generic functions and headers Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 02/37] tools: arm64: Make aarch64 instruction decoder available to tools Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 03/37] tools: bug: Remove duplicate definition Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 04/37] objtool: arm64: Add base definition for arm64 backend Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 05/37] objtool: arm64: Decode add/sub instructions Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 06/37] objtool: arm64: Decode jump and call related instructions Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 07/37] objtool: arm64: Decode other system instructions Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 08/37] objtool: arm64: Decode load/store instructions Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 09/37] objtool: arm64: Decode LDR instructions Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 10/37] objtool: arm64: Accept non-instruction data in code sections Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 11/37] objtool: arm64: Handle supported relocations in alternatives Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 12/37] objtool: arm64: Ignore replacement section for alternative callback Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 13/37] objtool: arm64: Enable stack validation for arm64 Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 14/37] objtool: check: Support data in text section Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 15/37] objtool: arm64: Add unwind_hint support Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 16/37] arm64: Add annotate_reachable() for objtools Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 17/37] arm64: bug: Add reachable annotation to warning macros Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 18/37] arm64: kgdb: Mark code following kgdb brk as reachable Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 19/37] arm64: irq-gic: Replace unreachable() with -EINVAL Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 20/37] arm64: Set intra-function call annotations Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 21/37] arm64: kernel: Skip validation of proton-pack.c.c and hibernate.c Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 22/37] arm64: kernel: Skip validation of kuser32.o Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 11:05 ` Peter Zijlstra 2022-04-29 11:05 ` Peter Zijlstra 2022-05-05 3:36 ` Chen Zhongjin 2022-05-05 3:36 ` Chen Zhongjin 2022-05-05 9:24 ` Peter Zijlstra 2022-05-05 9:24 ` Peter Zijlstra 2022-05-05 10:56 ` Mark Rutland 2022-05-05 10:56 ` Mark Rutland 2022-05-06 2:18 ` Chen Zhongjin 2022-05-06 2:18 ` Chen Zhongjin 2022-05-06 10:06 ` Mark Rutland 2022-05-06 10:06 ` Mark Rutland 2022-05-07 6:35 ` Chen Zhongjin 2022-05-07 6:35 ` Chen Zhongjin 2022-05-06 17:31 ` Josh Poimboeuf 2022-05-06 17:31 ` Josh Poimboeuf 2022-04-29 9:43 ` [RFC PATCH v4 23/37] arm64: kernel: Skip validation of sigreturn32.o Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 24/37] arm64: ftrace: Skip validation of entry-ftrace.o Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 25/37] arm64: bpf: Skip validation of ___bpf_prog_run Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 11:13 ` Peter Zijlstra 2022-04-29 11:13 ` Peter Zijlstra 2022-04-29 20:09 ` Josh Poimboeuf 2022-04-29 20:09 ` Josh Poimboeuf 2022-04-29 9:43 ` [RFC PATCH v4 26/37] arm64: crypto: Remove unnecessary stackframe Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 27/37] arm64: sleep: Properly set frame pointer before call Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 28/37] arm64: Change symbol annotations Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 29/37] arm64: efi-header: Mark efi header as data Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 30/37] arm64: head: Mark constants " Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 31/37] arm64: proc: Mark constant " Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 32/37] arm64: crypto: Mark data in code sections Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 33/37] arm64: Annotate ASM symbols with unknown stack state Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 34/37] arm64: entry: Annotate valid stack in kernel entry Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 35/37] arm64: entry: Annotate code switching to tasks Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` [RFC PATCH v4 36/37] arm64: entry: Align stack size for alternative Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin 2022-04-29 9:43 ` Chen Zhongjin [this message] 2022-04-29 9:43 ` [RFC PATCH v4 37/37] arm64: kvm: Annotate stack state for guest enter/exit code Chen Zhongjin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220429094355.122389-38-chenzhongjin@huawei.com \ --to=chenzhongjin@huawei.com \ --cc=ardb@kernel.org \ --cc=catalin.marinas@arm.com \ --cc=davem@davemloft.net \ --cc=herbert@gondor.apana.org.au \ --cc=jpoimboe@redhat.com \ --cc=jthierry@redhat.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=luc.vanoostenryck@gmail.com \ --cc=mark.rutland@arm.com \ --cc=masahiroy@kernel.org \ --cc=maz@kernel.org \ --cc=peterz@infradead.org \ --cc=tglx@linutronix.de \ --cc=will@kernel.org \ --cc=ycote@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.