mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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 v5 12/16] x86/percpu/64: Remove INIT_PER_CPU macros
Date: Tue,  5 Nov 2024 10:57:57 -0500	[thread overview]
Message-ID: <20241105155801.1779119-13-brgerst@gmail.com> (raw)
In-Reply-To: <20241105155801.1779119-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>
---
 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 c55a79d5feae..1ded1207528d 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 4b9d4557fc94..d4398261ad81 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -559,7 +559,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 859ff7c0dc02..fd1ecb1dbc1d 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -450,13 +450,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 8d9e82748615..c3124aac7ab3 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -89,7 +89,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.0


  parent reply	other threads:[~2024-11-05 15:58 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-05 15:57 [PATCH v5 00/16] x86-64: Stack protector and percpu improvements Brian Gerst
2024-11-05 15:57 ` [PATCH v5 01/16] x86/stackprotector: Work around strict Clang TLS symbol requirements Brian Gerst
2024-11-05 19:30   ` Nathan Chancellor
2024-11-08 14:43   ` [tip: x86/urgent] " tip-bot2 for Ard Biesheuvel
2024-12-06 11:51   ` [PATCH v5 01/16] " Oleg Nesterov
2024-12-06 14:09     ` Brian Gerst
2024-12-06 14:28       ` Oleg Nesterov
2024-12-06 12:32   ` [PATCH] x86/stackprotector: fix build failure with CONFIG_STACKPROTECTOR=n Oleg Nesterov
2024-12-06 13:17     ` Ard Biesheuvel
2024-12-06 14:21       ` Oleg Nesterov
2024-12-06 14:37         ` Ard Biesheuvel
2024-12-06 15:12           ` Brian Gerst
2024-12-06 15:17             ` Ard Biesheuvel
2025-03-10 21:44               ` Borislav Petkov
2025-03-10 22:19                 ` Ard Biesheuvel
2025-03-11 10:23                   ` Borislav Petkov
2025-03-11 10:37                     ` Ard Biesheuvel
2025-03-11 11:21                       ` Borislav Petkov
2025-03-11 13:13                         ` Borislav Petkov
2025-03-11 14:37                           ` Oleg Nesterov
2025-03-11 17:46                             ` Borislav Petkov
2025-03-11 18:10                               ` Oleg Nesterov
2025-03-11 19:01                                 ` Borislav Petkov
2025-03-11 19:24                                   ` Oleg Nesterov
2025-03-11 21:27                                     ` Brian Gerst
2025-03-11 21:42                                       ` Oleg Nesterov
2025-03-11 21:47                                         ` Brian Gerst
2025-03-12  9:28                           ` Borislav Petkov
2024-11-05 15:57 ` [PATCH v5 02/16] x86: Raise minimum GCC version to 8.1 Brian Gerst
2024-12-05 11:44   ` Ard Biesheuvel
2024-12-05 16:05     ` Brian Gerst
2025-01-14 16:25   ` Borislav Petkov
2024-11-05 15:57 ` [PATCH v5 03/16] x86/stackprotector: Remove stack protector test scripts Brian Gerst
2024-11-07 13:19   ` Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 04/16] x86/boot: Disable stack protector for early boot code Brian Gerst
2024-11-05 15:57 ` [PATCH v5 05/16] x86/pvh: Use fixed_percpu_data for early boot GSBASE Brian Gerst
2024-11-07 14:30   ` Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 06/16] x86/relocs: Handle R_X86_64_REX_GOTPCRELX relocations Brian Gerst
2024-11-07 11:20   ` Uros Bizjak
2024-11-07 11:27     ` Brian Gerst
2024-11-07 11:31       ` Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 07/16] x86/module: Deal with GOT based stack cookie load on Clang < 17 Brian Gerst
2024-11-09  9:36   ` David Laight
2024-11-05 15:57 ` [PATCH v5 08/16] x86/stackprotector/64: Convert to normal percpu variable Brian Gerst
2024-11-07 13:29   ` Uros Bizjak
2025-02-15 14:27   ` Borislav Petkov
2025-02-15 17:38     ` Brian Gerst
2025-02-15 21:18       ` Borislav Petkov
2025-02-15 22:10         ` Brian Gerst
2025-02-16  8:33           ` Borislav Petkov
2024-11-05 15:57 ` [PATCH v5 09/16] x86/percpu/64: Use relative percpu offsets Brian Gerst
2024-11-07 11:28   ` Uros Bizjak
2024-11-07 12:05     ` Brian Gerst
2024-11-07 13:34       ` Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 10/16] x86/percpu/64: Remove fixed_percpu_data Brian Gerst
2024-11-07 13:32   ` Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 11/16] x86/boot/64: Remove inverse relocations Brian Gerst
2024-11-05 15:57 ` Brian Gerst [this message]
2024-11-07 13:59   ` [PATCH v5 12/16] x86/percpu/64: Remove INIT_PER_CPU macros Uros Bizjak
2024-11-05 15:57 ` [PATCH v5 13/16] percpu: Remove PER_CPU_FIRST_SECTION Brian Gerst
2024-11-05 15:57 ` [PATCH v5 14/16] percpu: Remove PERCPU_VADDR() Brian Gerst
2024-11-05 15:58 ` [PATCH v5 15/16] percpu: Remove __per_cpu_load Brian Gerst
2024-11-05 15:58 ` [PATCH v5 16/16] kallsyms: Remove KALLSYMS_ABSOLUTE_PERCPU Brian Gerst
2024-11-09  9:31 ` [PATCH v5 00/16] x86-64: Stack protector and percpu improvements David Laight
2024-11-09 15:11   ` Brian Gerst
2024-11-09 21:27     ` David Laight
2025-01-04  9:14 ` Ard Biesheuvel

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=20241105155801.1779119-13-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome