aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2025-04-11 07:40:38 +0200
committerIngo Molnar <mingo@kernel.org>2025-04-11 11:01:34 +0200
commit37725b64a9912292841cea7e9aebfd0f084ed8c0 (patch)
treeafe337d09f82402f0a73dd3270022db766ef51ae
parentx86/alternatives: Assert that smp_text_poke_int3_handler() can only ever handle 'tp_vec[]' based requests (diff)
downloadwireguard-linux-37725b64a9912292841cea7e9aebfd0f084ed8c0.tar.xz
wireguard-linux-37725b64a9912292841cea7e9aebfd0f084ed8c0.zip
x86/alternatives: Assert input parameters in smp_text_poke_batch_process()
At this point the 'tp' input parameter must always be the global 'tp_vec' array, and 'nr_entries' must always be equal to 'tp_vec_nr'. Assert these conditions - which will allow the removal of a layer of indirection between these values. Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Juergen Gross <jgross@suse.com> Cc: "H . Peter Anvin" <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20250411054105.2341982-27-mingo@kernel.org
-rw-r--r--arch/x86/kernel/alternative.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 329f6ee6b3bc..4fa26a4351a6 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -2627,6 +2627,9 @@ static void smp_text_poke_batch_process(struct smp_text_poke_loc *tp, unsigned i
lockdep_assert_held(&text_mutex);
+ WARN_ON_ONCE(tp != tp_vec);
+ WARN_ON_ONCE(nr_entries != tp_vec_nr);
+
int3_vec.vec = tp;
int3_vec.nr_entries = nr_entries;