[PATCH v3 29/39] x86/ibt: Dont generate ENDBR in .discard.text

From: Peter Zijlstra
Date: Thu Mar 03 2022 - 06:33:01 EST


Having ENDBR in discarded sections can easily lead to relocations into
discarded sections which the linkers aren't really fond of. Objtool
also shouldn't generate them, but why tempt fate.

Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
---
arch/x86/include/asm/setup.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -8,6 +8,7 @@

#include <linux/linkage.h>
#include <asm/page_types.h>
+#include <asm/ibt.h>

#ifdef __i386__

@@ -119,7 +120,7 @@ void *extend_brk(size_t size, size_t ali
* executable.)
*/
#define RESERVE_BRK(name,sz) \
- static void __section(".discard.text") __used notrace \
+ static void __section(".discard.text") __noendbr __used notrace \
__brk_reservation_fn_##name##__(void) { \
asm volatile ( \
".pushsection .brk_reservation,\"aw\",@nobits;" \