From: Brian Gerst <brgerst@gmail.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org
Cc: Ingo Molnar <mingo@kernel.org>, "H . Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@alien8.de>, Ard Biesheuvel <ardb@kernel.org>,
Uros Bizjak <ubizjak@gmail.com>, Brian Gerst <brgerst@gmail.com>
Subject: [PATCH v6 11/15] x86/percpu/64: Remove INIT_PER_CPU macros
Date: Thu, 23 Jan 2025 14:07:43 -0500 [thread overview]
Message-ID: <20250123190747.745588-12-brgerst@gmail.com> (raw)
In-Reply-To: <20250123190747.745588-1-brgerst@gmail.com>
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>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Uros Bizjak <ubizjak@gmail.com>
---
arch/x86/include/asm/desc.h | 1 -
arch/x86/include/asm/percpu.h | 22 ----------------------
arch/x86/kernel/head64.c | 2 +-
arch/x86/kernel/irq_64.c | 1 -
arch/x86/kernel/vmlinux.lds.S | 7 -------
arch/x86/tools/relocs.c | 1 -
6 files changed, 1 insertion(+), 33 deletions(-)
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index 62dc9f59ea76..ec95fe44fa3a 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -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)
diff --git a/arch/x86/include/asm/percpu.h b/arch/x86/include/asm/percpu.h
index e525cd85f999..1a76eb87c5d8 100644
--- a/arch/x86/include/asm/percpu.h
+++ b/arch/x86/include/asm/percpu.h
@@ -20,12 +20,6 @@
#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>
@@ -97,22 +91,6 @@
#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).
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 22c9ba305ac1..05f8b8acf784 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -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 = {
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index ade0043ce56e..56bdeecd8ee0 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -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
/*
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 93c2fa8a7522..1769a7126224 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -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");
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index 9e8d5a62ff50..199ab867da7f 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -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)$"
--
2.47.1
next prev parent reply other threads:[~2025-01-23 19:08 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-23 19:07 [PATCH v6 00/15] x86-64: Stack protector and percpu improvements Brian Gerst
2025-01-23 19:07 ` [PATCH v6 01/15] x86: Raise minimum GCC version to 8.1 Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] x86/build: Raise the " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 02/15] x86/stackprotector: Remove stack protector test scripts Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 03/15] x86/boot: Disable stack protector for early boot code Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 04/15] x86/pvh: Use fixed_percpu_data for early boot GSBASE Brian Gerst
2025-01-25 15:06 ` Borislav Petkov
2025-01-25 16:51 ` Brian Gerst
2025-01-26 3:57 ` Borislav Petkov
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-03-04 22:26 ` [PATCH v6 04/15] " Mateusz Guzik
2025-03-04 23:44 ` H. Peter Anvin
2025-03-04 23:49 ` Mateusz Guzik
2025-03-05 7:16 ` Uros Bizjak
2025-03-05 12:01 ` Mateusz Guzik
2025-01-23 19:07 ` [PATCH v6 05/15] x86/relocs: Handle R_X86_64_REX_GOTPCRELX relocations Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 06/15] x86/module: Deal with GOT based stack cookie load on Clang < 17 Brian Gerst
2025-02-18 9:07 ` Ingo Molnar
2025-02-18 14:05 ` Brian Gerst
2025-02-18 21:52 ` H. Peter Anvin
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Ard Biesheuvel
2025-01-23 19:07 ` [PATCH v6 07/15] x86/stackprotector/64: Convert to normal percpu variable Brian Gerst
2025-02-18 9:14 ` Ingo Molnar
2025-02-18 12:11 ` [tip: x86/asm] x86/stackprotector/64: Convert to normal per-CPU variable tip-bot2 for Brian Gerst
2025-02-19 19:59 ` [PATCH v6 07/15] x86/stackprotector/64: Convert to normal percpu variable Nathan Chancellor
2025-02-20 9:23 ` Ard Biesheuvel
2025-03-12 11:59 ` [tip: x86/asm] x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP tip-bot2 for Ingo Molnar
2025-03-19 11:03 ` [tip: x86/core] " tip-bot2 for Ingo Molnar
2025-01-23 19:07 ` [PATCH v6 08/15] x86/percpu/64: Use relative percpu offsets Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 09/15] x86/percpu/64: Remove fixed_percpu_data Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 10/15] x86/boot/64: Remove inverse relocations Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` Brian Gerst [this message]
2025-02-18 12:11 ` [tip: x86/asm] x86/percpu/64: Remove INIT_PER_CPU macros tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 12/15] percpu: Remove PER_CPU_FIRST_SECTION Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 13/15] percpu: Remove PERCPU_VADDR() Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 14/15] percpu: Remove __per_cpu_load Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-01-23 19:07 ` [PATCH v6 15/15] kallsyms: Remove KALLSYMS_ABSOLUTE_PERCPU Brian Gerst
2025-02-18 12:11 ` [tip: x86/asm] " tip-bot2 for Brian Gerst
2025-02-18 9:22 ` [PATCH v6 00/15] x86-64: Stack protector and percpu improvements Ingo Molnar
2025-02-18 17:46 ` Uros Bizjak
2025-02-19 11:47 ` Ingo Molnar
2025-02-19 13:18 ` Brian Gerst
2025-02-20 9:51 ` Uros Bizjak
2025-02-20 10:05 ` Ard Biesheuvel
2025-02-20 10:46 ` Uros Bizjak
2025-02-20 10:52 ` Ard Biesheuvel
2025-02-20 10:56 ` Uros Bizjak
2025-02-20 17:24 ` Brian Gerst
2025-02-20 17:35 ` Ard Biesheuvel
2025-02-20 17:47 ` Brian Gerst
2025-02-20 17:59 ` Brian Gerst
2025-02-20 20:09 ` Uros Bizjak
2025-02-20 13:26 ` Ingo Molnar
2025-02-20 17:05 ` Brian Gerst
2025-02-22 12:25 ` Ingo Molnar
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=20250123190747.745588-12-brgerst@gmail.com \
--to=brgerst@gmail.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=ubizjak@gmail.com \
--cc=x86@kernel.org \
/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: link
Be 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.