From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
"H . Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>
Subject: [PATCH 08/53] x86/alternatives: Rename 'poking_mm' to 'text_poke_mm'
Date: Fri, 11 Apr 2025 07:40:20 +0200 [thread overview]
Message-ID: <20250411054105.2341982-9-mingo@kernel.org> (raw)
In-Reply-To: <20250411054105.2341982-1-mingo@kernel.org>
Put it into the text_poke_* namespace of <asm/text-patching.h>.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/asm/text-patching.h | 2 +-
arch/x86/kernel/alternative.c | 18 +++++++++---------
arch/x86/mm/init.c | 8 ++++----
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/arch/x86/include/asm/text-patching.h b/arch/x86/include/asm/text-patching.h
index 93a6b7bc78bd..7a95c0820b3e 100644
--- a/arch/x86/include/asm/text-patching.h
+++ b/arch/x86/include/asm/text-patching.h
@@ -128,7 +128,7 @@ void *text_gen_insn(u8 opcode, const void *addr, const void *dest)
}
extern int after_bootmem;
-extern __ro_after_init struct mm_struct *poking_mm;
+extern __ro_after_init struct mm_struct *text_poke_mm;
extern __ro_after_init unsigned long poking_addr;
#ifndef CONFIG_UML_X86
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 44269d8bf492..5afd453e4352 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -2191,7 +2191,7 @@ static inline temp_mm_state_t use_temporary_mm(struct mm_struct *mm)
return temp_state;
}
-__ro_after_init struct mm_struct *poking_mm;
+__ro_after_init struct mm_struct *text_poke_mm;
__ro_after_init unsigned long poking_addr;
static inline void unuse_temporary_mm(temp_mm_state_t prev_state)
@@ -2201,7 +2201,7 @@ static inline void unuse_temporary_mm(temp_mm_state_t prev_state)
switch_mm_irqs_off(NULL, prev_state.mm, current);
/* Clear the cpumask, to indicate no TLB flushing is needed anywhere */
- cpumask_clear_cpu(raw_smp_processor_id(), mm_cpumask(poking_mm));
+ cpumask_clear_cpu(raw_smp_processor_id(), mm_cpumask(text_poke_mm));
/*
* Restore the breakpoints if they were disabled before the temporary mm
@@ -2266,7 +2266,7 @@ static void *__text_poke(text_poke_f func, void *addr, const void *src, size_t l
/*
* The lock is not really needed, but this allows to avoid open-coding.
*/
- ptep = get_locked_pte(poking_mm, poking_addr, &ptl);
+ ptep = get_locked_pte(text_poke_mm, poking_addr, &ptl);
/*
* This must not fail; preallocated in poking_init().
@@ -2276,18 +2276,18 @@ static void *__text_poke(text_poke_f func, void *addr, const void *src, size_t l
local_irq_save(flags);
pte = mk_pte(pages[0], pgprot);
- set_pte_at(poking_mm, poking_addr, ptep, pte);
+ set_pte_at(text_poke_mm, poking_addr, ptep, pte);
if (cross_page_boundary) {
pte = mk_pte(pages[1], pgprot);
- set_pte_at(poking_mm, poking_addr + PAGE_SIZE, ptep + 1, pte);
+ set_pte_at(text_poke_mm, poking_addr + PAGE_SIZE, ptep + 1, pte);
}
/*
* Loading the temporary mm behaves as a compiler barrier, which
* guarantees that the PTE will be set at the time memcpy() is done.
*/
- prev = use_temporary_mm(poking_mm);
+ prev = use_temporary_mm(text_poke_mm);
kasan_disable_current();
func((u8 *)poking_addr + offset_in_page(addr), src, len);
@@ -2299,9 +2299,9 @@ static void *__text_poke(text_poke_f func, void *addr, const void *src, size_t l
*/
barrier();
- pte_clear(poking_mm, poking_addr, ptep);
+ pte_clear(text_poke_mm, poking_addr, ptep);
if (cross_page_boundary)
- pte_clear(poking_mm, poking_addr + PAGE_SIZE, ptep + 1);
+ pte_clear(text_poke_mm, poking_addr + PAGE_SIZE, ptep + 1);
/*
* Loading the previous page-table hierarchy requires a serializing
@@ -2314,7 +2314,7 @@ static void *__text_poke(text_poke_f func, void *addr, const void *src, size_t l
* Flushing the TLB might involve IPIs, which would require enabled
* IRQs, but not if the mm is not used, as it is in this point.
*/
- flush_tlb_mm_range(poking_mm, poking_addr, poking_addr +
+ flush_tlb_mm_range(text_poke_mm, poking_addr, poking_addr +
(cross_page_boundary ? 2 : 1) * PAGE_SIZE,
PAGE_SHIFT, false);
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index bfa444a7dbb0..84b52a1ebd48 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -824,11 +824,11 @@ void __init poking_init(void)
spinlock_t *ptl;
pte_t *ptep;
- poking_mm = mm_alloc();
- BUG_ON(!poking_mm);
+ text_poke_mm = mm_alloc();
+ BUG_ON(!text_poke_mm);
/* Xen PV guests need the PGD to be pinned. */
- paravirt_enter_mmap(poking_mm);
+ paravirt_enter_mmap(text_poke_mm);
/*
* Randomize the poking address, but make sure that the following page
@@ -848,7 +848,7 @@ void __init poking_init(void)
* needed for poking now. Later, poking may be performed in an atomic
* section, which might cause allocation to fail.
*/
- ptep = get_locked_pte(poking_mm, poking_addr, &ptl);
+ ptep = get_locked_pte(text_poke_mm, poking_addr, &ptl);
BUG_ON(!ptep);
pte_unmap_unlock(ptep, ptl);
}
--
2.45.2
next prev parent reply other threads:[~2025-04-11 5:41 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-11 5:40 [PATCH -v3 00/53] Simplify, reorganize and clean up the x86 text-patching code (alternative.c) Ingo Molnar
2025-04-11 5:40 ` [PATCH 01/53] x86/alternatives: Improve code-patching scalability by removing false sharing in poke_int3_handler() Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Eric Dumazet
2025-04-11 5:40 ` [PATCH 02/53] x86/alternatives: Document the text_poke_bp_batch() synchronization rules a bit more Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Peter Zijlstra
2025-04-11 5:40 ` [PATCH 03/53] x86/alternatives: Rename 'struct bp_patching_desc' to 'struct int3_patching_desc' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] x86/alternatives: Rename 'struct bp_patching_desc' to 'struct text_poke_int3_vec' tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 04/53] x86/alternatives: Rename 'bp_refs' to 'int3_refs' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] x86/alternatives: Rename 'bp_refs' to 'text_poke_array_refs' tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 05/53] x86/alternatives: Rename 'text_poke_bp_batch()' to 'smp_text_poke_batch_process()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 06/53] x86/alternatives: Rename 'text_poke_bp()' to 'smp_text_poke_single()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 07/53] x86/alternatives: Rename 'poke_int3_handler()' to 'smp_text_poke_int3_handler()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` Ingo Molnar [this message]
2025-04-11 10:02 ` [tip: x86/alternatives] x86/alternatives: Rename 'poking_mm' to 'text_poke_mm' tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 09/53] x86/alternatives: Rename 'poking_addr' to 'text_poke_mm_addr' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 10/53] x86/alternatives: Rename 'bp_desc' to 'int3_desc' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 11/53] x86/alternatives: Remove duplicate 'text_poke_early()' prototype Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 12/53] x86/alternatives: Update comments in int3_emulate_push() Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 13/53] x86/alternatives: Remove the confusing, inaccurate & unnecessary 'temp_mm_state_t' abstraction Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 14/53] x86/alternatives: Rename 'text_poke_flush()' to 'smp_text_poke_batch_flush()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 15/53] x86/alternatives: Rename 'text_poke_finish()' to 'smp_text_poke_batch_finish()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 16/53] x86/alternatives: Rename 'text_poke_queue()' to 'smp_text_poke_batch_add()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 17/53] x86/alternatives: Rename 'text_poke_loc_init()' to 'text_poke_int3_loc_init()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 18/53] x86/alternatives: Rename 'struct text_poke_loc' to 'struct smp_text_poke_loc' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 19/53] x86/alternatives: Rename 'struct int3_patching_desc' to 'struct text_poke_int3_vec' Ingo Molnar
2025-04-11 5:40 ` [PATCH 20/53] x86/alternatives: Rename 'int3_desc' to 'int3_vec' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 21/53] x86/alternatives: Add text_mutex) assert to smp_text_poke_batch_flush() Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 22/53] x86/alternatives: Use non-inverted logic instead of 'tp_order_fail()' Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 23/53] x86/alternatives: Remove the 'addr == NULL means forced-flush' hack from smp_text_poke_batch_finish()/smp_text_poke_batch_flush()/text_poke_addr_ordered() Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 24/53] x86/alternatives: Simplify smp_text_poke_single() by using tp_vec and existing APIs Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 25/53] x86/alternatives: Assert that smp_text_poke_int3_handler() can only ever handle 'tp_vec[]' based requests Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 26/53] x86/alternatives: Assert input parameters in smp_text_poke_batch_process() Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 27/53] x86/alternatives: Introduce 'struct smp_text_poke_array' and move tp_vec and tp_vec_nr to it Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 28/53] x86/alternatives: Remove the tp_vec indirection Ingo Molnar
2025-04-11 10:02 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 29/53] x86/alternatives: Rename 'try_get_desc()' to 'try_get_text_poke_array()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 30/53] x86/alternatives: Rename 'put_desc()' to 'put_text_poke_array()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 31/53] x86/alternatives: Simplify try_get_text_poke_array() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 32/53] x86/alternatives: Simplify smp_text_poke_int3_handler() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 33/53] x86/alternatives: Simplify smp_text_poke_batch_process() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 34/53] x86/alternatives: Rename 'int3_refs' to 'text_poke_array_refs' Ingo Molnar
2025-04-11 5:40 ` [PATCH 35/53] x86/alternatives: Move the text_poke_array manipulation into text_poke_int3_loc_init() and rename it to __smp_text_poke_batch_add() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 36/53] x86/alternatives: Remove the mixed-patching restriction on smp_text_poke_single() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 37/53] x86/alternatives: Document 'smp_text_poke_single()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 38/53] x86/alternatives: Add documentation for smp_text_poke_batch_add() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 39/53] x86/alternatives: Move text_poke_array completion from smp_text_poke_batch_finish() and smp_text_poke_batch_flush() to smp_text_poke_batch_process() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 40/53] x86/alternatives: Rename 'text_poke_sync()' to 'smp_text_poke_sync_each_cpu()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 41/53] x86/alternatives: Simplify text_poke_addr_ordered() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 42/53] x86/alternatives: Constify text_poke_addr() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 43/53] x86/alternatives: Simplify and clean up patch_cmp() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 44/53] x86/alternatives: Standardize on 'tpl' local variable names for 'struct smp_text_poke_loc *' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 45/53] x86/alternatives: Rename 'TP_ARRAY_NR_ENTRIES_MAX' to 'TEXT_POKE_ARRAY_MAX' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 46/53] x86/alternatives: Rename 'POKE_MAX_OPCODE_SIZE' to 'TEXT_POKE_MAX_OPCODE_SIZE' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:40 ` [PATCH 47/53] x86/alternatives: Simplify the #include section Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 48/53] x86/alternatives: Move declarations of vmlinux.lds.S defined section symbols to <asm/alternative.h> Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 49/53] x86/alternatives: Remove 'smp_text_poke_batch_flush()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 50/53] x86/alternatives: Update the comments in smp_text_poke_batch_process() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 51/53] x86/alternatives: Rename 'apply_relocation()' to 'text_poke_apply_relocation()' Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 52/53] x86/alternatives: Add comment about noinstr expectations Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Ingo Molnar
2025-04-11 5:41 ` [PATCH 53/53] x86/alternatives: Make smp_text_poke_batch_process() subsume smp_text_poke_batch_finish() Ingo Molnar
2025-04-11 10:01 ` [tip: x86/alternatives] " tip-bot2 for Nikolay Borisov
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=20250411054105.2341982-9-mingo@kernel.org \
--to=mingo@kernel.org \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.