]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/percpu/64: Remove INIT_PER_CPU macros
authorBrian Gerst <brgerst@gmail.com>
Thu, 23 Jan 2025 19:07:43 +0000 (14:07 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 18 Feb 2025 09:15:50 +0000 (10:15 +0100)
Now that the load and link addresses of percpu variables are the same,
these macros are no longer necessary.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250123190747.745588-12-brgerst@gmail.com
arch/x86/include/asm/desc.h
arch/x86/include/asm/percpu.h
arch/x86/kernel/head64.c
arch/x86/kernel/irq_64.c
arch/x86/kernel/vmlinux.lds.S
arch/x86/tools/relocs.c

index 62dc9f59ea768c2022cd4673d5b0e74d2c3d4ce6..ec95fe44fa3a03a1708bc0d8474595258db6027f 100644 (file)
@@ -46,7 +46,6 @@ struct gdt_page {
 } __attribute__((aligned(PAGE_SIZE)));
 
 DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
-DECLARE_INIT_PER_CPU(gdt_page);
 
 /* Provide the original GDT */
 static inline struct desc_struct *get_cpu_gdt_rw(unsigned int cpu)
index e525cd85f999fdc53d7686bcbfb54975d5f86584..1a76eb87c5d86293bc09acd06ceba4b4abb6809a 100644 (file)
 
 #define PER_CPU_VAR(var)       __percpu(var)__percpu_rel
 
-#ifdef CONFIG_X86_64_SMP
-# define INIT_PER_CPU_VAR(var)  init_per_cpu__##var
-#else
-# define INIT_PER_CPU_VAR(var)  var
-#endif
-
 #else /* !__ASSEMBLY__: */
 
 #include <linux/build_bug.h>
 #define __percpu_arg(x)                __percpu_prefix "%" #x
 #define __force_percpu_arg(x)  __force_percpu_prefix "%" #x
 
-/*
- * Initialized pointers to per-CPU variables needed for the boot
- * processor need to use these macros to get the proper address
- * offset from __per_cpu_load on SMP.
- *
- * There also must be an entry in vmlinux_64.lds.S
- */
-#define DECLARE_INIT_PER_CPU(var) \
-       extern typeof(var) init_per_cpu_var(var)
-
-#ifdef CONFIG_X86_64_SMP
-# define init_per_cpu_var(var)  init_per_cpu__##var
-#else
-# define init_per_cpu_var(var)  var
-#endif
-
 /*
  * For arch-specific code, we can use direct single-insn ops (they
  * don't give an lvalue though).
index 22c9ba305ac171a408af47b48edf5587b651c605..05f8b8acf7845d0d31cd314f854c5c42c09e695a 100644 (file)
@@ -567,7 +567,7 @@ void early_setup_idt(void)
  */
 void __head startup_64_setup_gdt_idt(void)
 {
-       struct desc_struct *gdt = (void *)(__force unsigned long)init_per_cpu_var(gdt_page.gdt);
+       struct desc_struct *gdt = (void *)(__force unsigned long)gdt_page.gdt;
        void *handler = NULL;
 
        struct desc_ptr startup_gdt_descr = {
index ade0043ce56efedb1ccd4cc1d1003c7974379e75..56bdeecd8ee02a7b8efc23cbecc33734824cd32f 100644 (file)
@@ -27,7 +27,6 @@
 #include <asm/apic.h>
 
 DEFINE_PER_CPU_PAGE_ALIGNED(struct irq_stack, irq_stack_backing_store) __visible;
-DECLARE_INIT_PER_CPU(irq_stack_backing_store);
 
 #ifdef CONFIG_VMAP_STACK
 /*
index 93c2fa8a7522e3a8a8901afc52ddb074704cad72..1769a7126224c829cf7e48f0e5b5c539e5ea029e 100644 (file)
@@ -471,13 +471,6 @@ SECTIONS
 PROVIDE(__ref_stack_chk_guard = __stack_chk_guard);
 
 #ifdef CONFIG_X86_64
-/*
- * Per-cpu symbols which need to be offset from __per_cpu_load
- * for the boot processor.
- */
-#define INIT_PER_CPU(x) init_per_cpu__##x = ABSOLUTE(x)
-INIT_PER_CPU(gdt_page);
-INIT_PER_CPU(irq_stack_backing_store);
 
 #ifdef CONFIG_MITIGATION_UNRET_ENTRY
 . = ASSERT((retbleed_return_thunk & 0x3f) == 0, "retbleed_return_thunk not cacheline-aligned");
index ae6962665b351ab1cdbf5e453a895fd7cec53b12..5778bc4984153f188cc70a08623a57f9cf12883a 100644 (file)
@@ -90,7 +90,6 @@ static const char * const     sym_regex_kernel[S_NSYMTYPES] = {
        "__initramfs_start|"
        "(jiffies|jiffies_64)|"
 #if ELF_BITS == 64
-       "init_per_cpu__.*|"
        "__end_rodata_hpage_align|"
 #endif
        "_end)$"