mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
x86/alternatives: Move the text_poke_array manipulation into text_poke_int3_loc_init() and rename it to __smp_text_poke_batch_add()
This simplifies the code and code generation a bit: text data bss dec hex filename 14802 1029 4112 19943 4de7 alternative.o.before 14784 1029 4112 19925 4dd5 alternative.o.after 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-36-mingo@kernel.org
This commit is contained in:
parent
74e8e2bf95
commit
0e351aec2b
|
|
@ -2752,12 +2752,14 @@ static void smp_text_poke_batch_process(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void text_poke_int3_loc_init(struct smp_text_poke_loc *tp, void *addr,
|
||||
const void *opcode, size_t len, const void *emulate)
|
||||
static void __smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, const void *emulate)
|
||||
{
|
||||
struct smp_text_poke_loc *tp;
|
||||
struct insn insn;
|
||||
int ret, i = 0;
|
||||
|
||||
tp = &text_poke_array.vec[text_poke_array.nr_entries++];
|
||||
|
||||
if (len == 6)
|
||||
i = 1;
|
||||
memcpy((void *)tp->text, opcode+i, len-i);
|
||||
|
|
@ -2873,12 +2875,8 @@ static void smp_text_poke_batch_flush(void *addr)
|
|||
|
||||
void __ref smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, const void *emulate)
|
||||
{
|
||||
struct smp_text_poke_loc *tp;
|
||||
|
||||
smp_text_poke_batch_flush(addr);
|
||||
|
||||
tp = &text_poke_array.vec[text_poke_array.nr_entries++];
|
||||
text_poke_int3_loc_init(tp, addr, opcode, len, emulate);
|
||||
__smp_text_poke_batch_add(addr, opcode, len, emulate);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2894,13 +2892,9 @@ void __ref smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, c
|
|||
*/
|
||||
void __ref smp_text_poke_single(void *addr, const void *opcode, size_t len, const void *emulate)
|
||||
{
|
||||
struct smp_text_poke_loc *tp;
|
||||
|
||||
/* Batch-patching should not be mixed with single-patching: */
|
||||
WARN_ON_ONCE(text_poke_array.nr_entries != 0);
|
||||
|
||||
tp = &text_poke_array.vec[text_poke_array.nr_entries++];
|
||||
text_poke_int3_loc_init(tp, addr, opcode, len, emulate);
|
||||
|
||||
__smp_text_poke_batch_add(addr, opcode, len, emulate);
|
||||
smp_text_poke_batch_finish();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user