[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <163542777304.626.17338682230666549954.tip-bot2@tip-bot2>
Date: Thu, 28 Oct 2021 13:29:33 -0000
From: "tip-bot2 for Kristen Carlson Accardi" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: Kristen Carlson Accardi <kristen@...ux.intel.com>,
Alexander Lobakin <alexandr.lobakin@...el.com>,
Kees Cook <keescook@...omium.org>,
"Peter Zijlstra (Intel)" <peterz@...radead.org>,
Tony Luck <tony.luck@...el.com>,
Josh Poimboeuf <jpoimboe@...hat.com>, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject: [tip: x86/core] vmlinux.lds.h: Have ORC lookup cover entire _etext - _stext
The following commit has been merged into the x86/core branch of tip:
Commit-ID: ca136cac37eb51649d52d5bc4271c55e30ed354c
Gitweb: https://git.kernel.org/tip/ca136cac37eb51649d52d5bc4271c55e30ed354c
Author: Kristen Carlson Accardi <kristen@...ux.intel.com>
AuthorDate: Wed, 13 Oct 2021 10:57:42 -07:00
Committer: Peter Zijlstra <peterz@...radead.org>
CommitterDate: Wed, 27 Oct 2021 11:07:59 +02:00
vmlinux.lds.h: Have ORC lookup cover entire _etext - _stext
When using -ffunction-sections to place each function in its own text
section (so it can be randomized at load time in the future FGKASLR
series), the linker will place most of the functions into separate .text.*
sections. SIZEOF(.text) won't work here for calculating the ORC lookup
table size, so the total text size must be calculated to include .text
AND all .text.* sections.
Signed-off-by: Kristen Carlson Accardi <kristen@...ux.intel.com>
[ alobakin: move it to vmlinux.lds.h and make arch-indep ]
Signed-off-by: Alexander Lobakin <alexandr.lobakin@...el.com>
Signed-off-by: Kees Cook <keescook@...omium.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Reviewed-by: Tony Luck <tony.luck@...el.com>
Reviewed-by: Kees Cook <keescook@...omium.org>
Acked-by: Josh Poimboeuf <jpoimboe@...hat.com>
Tested-by: Tony Luck <tony.luck@...el.com>
Link: https://lore.kernel.org/r/20211013175742.1197608-5-keescook@chromium.org
---
include/asm-generic/vmlinux.lds.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index f2984af..e823491 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -869,10 +869,11 @@
KEEP(*(.orc_unwind)) \
__stop_orc_unwind = .; \
} \
+ text_size = _etext - _stext; \
. = ALIGN(4); \
.orc_lookup : AT(ADDR(.orc_lookup) - LOAD_OFFSET) { \
orc_lookup = .; \
- . += (((SIZEOF(.text) + LOOKUP_BLOCK_SIZE - 1) / \
+ . += (((text_size + LOOKUP_BLOCK_SIZE - 1) / \
LOOKUP_BLOCK_SIZE) + 1) * 4; \
orc_lookup_end = .; \
}
Powered by blists - more mailing lists