task_stack, x86/cea: Force-inline stack helpers
authorBorislav Petkov <bp@suse.de>
Wed, 23 Mar 2022 19:02:41 +0000 (20:02 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 4 Apr 2022 08:13:07 +0000 (10:13 +0200)
Force-inline two stack helpers to fix the following objtool warnings:

  vmlinux.o: warning: objtool: in_task_stack()+0xc: call to task_stack_page() leaves .noinstr.text section
  vmlinux.o: warning: objtool: in_entry_stack()+0x10: call to cpu_entry_stack() leaves .noinstr.text section

Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220324183607.31717-2-bp@alien8.de
arch/x86/include/asm/cpu_entry_area.h
include/linux/sched/task_stack.h

index dd5ea1b..75efc4c 100644 (file)
@@ -143,7 +143,7 @@ extern void cea_set_pte(void *cea_vaddr, phys_addr_t pa, pgprot_t flags);
 
 extern struct cpu_entry_area *get_cpu_entry_area(int cpu);
 
-static inline struct entry_stack *cpu_entry_stack(int cpu)
+static __always_inline struct entry_stack *cpu_entry_stack(int cpu)
 {
        return &get_cpu_entry_area(cpu)->entry_stack_page.stack;
 }
index 892562e..5e799a4 100644 (file)
@@ -16,7 +16,7 @@
  * try_get_task_stack() instead.  task_stack_page will return a pointer
  * that could get freed out from under you.
  */
-static inline void *task_stack_page(const struct task_struct *task)
+static __always_inline void *task_stack_page(const struct task_struct *task)
 {
        return task->stack;
 }