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 34/37] arm64: entry: Annotate valid stack in kernel entry Date: Fri, 29 Apr 2022 17:43:52 +0800 [thread overview] Message-ID: <20220429094355.122389-35-chenzhongjin@huawei.com> (raw) In-Reply-To: <20220429094355.122389-1-chenzhongjin@huawei.com> From: Julien Thierry <jthierry@redhat.com> When taking an exception/interrupt, add unwind hints to indicate from which point the stack pointer is known to be valid. Signed-off-by: Julien Thierry <jthierry@redhat.com> Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com> --- arch/arm64/kernel/entry.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 10fac8f13982..eeb576ec97ba 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -68,6 +68,7 @@ tbnz x0, #THREAD_SHIFT, 0f sub x0, sp, x0 // x0'' = sp' - x0' = (sp + x0) - sp = x0 sub sp, sp, x0 // sp'' = sp' - x0 = (sp + x0) - x0 = sp + UNWIND_HINT_FUNC sp_offset=S_FRAME_SIZE b el\el\ht\()_\regsize\()_\label 0: @@ -100,6 +101,7 @@ sub sp, sp, x0 mrs x0, tpidrro_el0 #endif + UNWIND_HINT_FUNC sp_offset=S_FRAME_SIZE b el\el\ht\()_\regsize\()_\label .org .Lventry_start\@ + 128 // Did we overflow the ventry slot? .endm -- 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 34/37] arm64: entry: Annotate valid stack in kernel entry Date: Fri, 29 Apr 2022 17:43:52 +0800 [thread overview] Message-ID: <20220429094355.122389-35-chenzhongjin@huawei.com> (raw) In-Reply-To: <20220429094355.122389-1-chenzhongjin@huawei.com> From: Julien Thierry <jthierry@redhat.com> When taking an exception/interrupt, add unwind hints to indicate from which point the stack pointer is known to be valid. Signed-off-by: Julien Thierry <jthierry@redhat.com> Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com> --- arch/arm64/kernel/entry.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 10fac8f13982..eeb576ec97ba 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -68,6 +68,7 @@ tbnz x0, #THREAD_SHIFT, 0f sub x0, sp, x0 // x0'' = sp' - x0' = (sp + x0) - sp = x0 sub sp, sp, x0 // sp'' = sp' - x0 = (sp + x0) - x0 = sp + UNWIND_HINT_FUNC sp_offset=S_FRAME_SIZE b el\el\ht\()_\regsize\()_\label 0: @@ -100,6 +101,7 @@ sub sp, sp, x0 mrs x0, tpidrro_el0 #endif + UNWIND_HINT_FUNC sp_offset=S_FRAME_SIZE b el\el\ht\()_\regsize\()_\label .org .Lventry_start\@ + 128 // Did we overflow the ventry slot? .endm -- 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:46 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 ` Chen Zhongjin [this message] 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 ` [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 ` [RFC PATCH v4 37/37] arm64: kvm: Annotate stack state for guest enter/exit code Chen Zhongjin 2022-04-29 9:43 ` 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-35-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.