mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
x86/alternatives: Standardize on 'tpl' local variable names for 'struct smp_text_poke_loc *'
There's no toilet paper in this code. 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-45-mingo@kernel.org
This commit is contained in:
parent
3e6f47573e
commit
22b9662313
|
|
@ -2493,9 +2493,9 @@ static __always_inline void put_text_poke_array(void)
|
|||
raw_atomic_dec(refs);
|
||||
}
|
||||
|
||||
static __always_inline void *text_poke_addr(const struct smp_text_poke_loc *tp)
|
||||
static __always_inline void *text_poke_addr(const struct smp_text_poke_loc *tpl)
|
||||
{
|
||||
return _stext + tp->rel_addr;
|
||||
return _stext + tpl->rel_addr;
|
||||
}
|
||||
|
||||
static __always_inline int patch_cmp(const void *tpl_a, const void *tpl_b)
|
||||
|
|
@ -2509,7 +2509,7 @@ static __always_inline int patch_cmp(const void *tpl_a, const void *tpl_b)
|
|||
|
||||
noinstr int smp_text_poke_int3_handler(struct pt_regs *regs)
|
||||
{
|
||||
struct smp_text_poke_loc *tp;
|
||||
struct smp_text_poke_loc *tpl;
|
||||
int ret = 0;
|
||||
void *ip;
|
||||
|
||||
|
|
@ -2538,20 +2538,20 @@ noinstr int smp_text_poke_int3_handler(struct pt_regs *regs)
|
|||
* Skip the binary search if there is a single member in the vector.
|
||||
*/
|
||||
if (unlikely(text_poke_array.nr_entries > 1)) {
|
||||
tp = __inline_bsearch(ip, text_poke_array.vec, text_poke_array.nr_entries,
|
||||
tpl = __inline_bsearch(ip, text_poke_array.vec, text_poke_array.nr_entries,
|
||||
sizeof(struct smp_text_poke_loc),
|
||||
patch_cmp);
|
||||
if (!tp)
|
||||
if (!tpl)
|
||||
goto out_put;
|
||||
} else {
|
||||
tp = text_poke_array.vec;
|
||||
if (text_poke_addr(tp) != ip)
|
||||
tpl = text_poke_array.vec;
|
||||
if (text_poke_addr(tpl) != ip)
|
||||
goto out_put;
|
||||
}
|
||||
|
||||
ip += tp->len;
|
||||
ip += tpl->len;
|
||||
|
||||
switch (tp->opcode) {
|
||||
switch (tpl->opcode) {
|
||||
case INT3_INSN_OPCODE:
|
||||
/*
|
||||
* Someone poked an explicit INT3, they'll want to handle it,
|
||||
|
|
@ -2564,16 +2564,16 @@ noinstr int smp_text_poke_int3_handler(struct pt_regs *regs)
|
|||
break;
|
||||
|
||||
case CALL_INSN_OPCODE:
|
||||
int3_emulate_call(regs, (long)ip + tp->disp);
|
||||
int3_emulate_call(regs, (long)ip + tpl->disp);
|
||||
break;
|
||||
|
||||
case JMP32_INSN_OPCODE:
|
||||
case JMP8_INSN_OPCODE:
|
||||
int3_emulate_jmp(regs, (long)ip + tp->disp);
|
||||
int3_emulate_jmp(regs, (long)ip + tpl->disp);
|
||||
break;
|
||||
|
||||
case 0x70 ... 0x7f: /* Jcc */
|
||||
int3_emulate_jcc(regs, tp->opcode & 0xf, (long)ip, tp->disp);
|
||||
int3_emulate_jcc(regs, tpl->opcode & 0xf, (long)ip, tpl->disp);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -2755,33 +2755,33 @@ static void smp_text_poke_batch_process(void)
|
|||
|
||||
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 smp_text_poke_loc *tpl;
|
||||
struct insn insn;
|
||||
int ret, i = 0;
|
||||
|
||||
tp = &text_poke_array.vec[text_poke_array.nr_entries++];
|
||||
tpl = &text_poke_array.vec[text_poke_array.nr_entries++];
|
||||
|
||||
if (len == 6)
|
||||
i = 1;
|
||||
memcpy((void *)tp->text, opcode+i, len-i);
|
||||
memcpy((void *)tpl->text, opcode+i, len-i);
|
||||
if (!emulate)
|
||||
emulate = opcode;
|
||||
|
||||
ret = insn_decode_kernel(&insn, emulate);
|
||||
BUG_ON(ret < 0);
|
||||
|
||||
tp->rel_addr = addr - (void *)_stext;
|
||||
tp->len = len;
|
||||
tp->opcode = insn.opcode.bytes[0];
|
||||
tpl->rel_addr = addr - (void *)_stext;
|
||||
tpl->len = len;
|
||||
tpl->opcode = insn.opcode.bytes[0];
|
||||
|
||||
if (is_jcc32(&insn)) {
|
||||
/*
|
||||
* Map Jcc.d32 onto Jcc.d8 and use len to distinguish.
|
||||
*/
|
||||
tp->opcode = insn.opcode.bytes[1] - 0x10;
|
||||
tpl->opcode = insn.opcode.bytes[1] - 0x10;
|
||||
}
|
||||
|
||||
switch (tp->opcode) {
|
||||
switch (tpl->opcode) {
|
||||
case RET_INSN_OPCODE:
|
||||
case JMP32_INSN_OPCODE:
|
||||
case JMP8_INSN_OPCODE:
|
||||
|
|
@ -2790,14 +2790,14 @@ static void __smp_text_poke_batch_add(void *addr, const void *opcode, size_t len
|
|||
* next instruction can be padded with INT3.
|
||||
*/
|
||||
for (i = insn.length; i < len; i++)
|
||||
BUG_ON(tp->text[i] != INT3_INSN_OPCODE);
|
||||
BUG_ON(tpl->text[i] != INT3_INSN_OPCODE);
|
||||
break;
|
||||
|
||||
default:
|
||||
BUG_ON(len != insn.length);
|
||||
}
|
||||
|
||||
switch (tp->opcode) {
|
||||
switch (tpl->opcode) {
|
||||
case INT3_INSN_OPCODE:
|
||||
case RET_INSN_OPCODE:
|
||||
break;
|
||||
|
|
@ -2806,21 +2806,21 @@ static void __smp_text_poke_batch_add(void *addr, const void *opcode, size_t len
|
|||
case JMP32_INSN_OPCODE:
|
||||
case JMP8_INSN_OPCODE:
|
||||
case 0x70 ... 0x7f: /* Jcc */
|
||||
tp->disp = insn.immediate.value;
|
||||
tpl->disp = insn.immediate.value;
|
||||
break;
|
||||
|
||||
default: /* assume NOP */
|
||||
switch (len) {
|
||||
case 2: /* NOP2 -- emulate as JMP8+0 */
|
||||
BUG_ON(memcmp(emulate, x86_nops[len], len));
|
||||
tp->opcode = JMP8_INSN_OPCODE;
|
||||
tp->disp = 0;
|
||||
tpl->opcode = JMP8_INSN_OPCODE;
|
||||
tpl->disp = 0;
|
||||
break;
|
||||
|
||||
case 5: /* NOP5 -- emulate as JMP32+0 */
|
||||
BUG_ON(memcmp(emulate, x86_nops[len], len));
|
||||
tp->opcode = JMP32_INSN_OPCODE;
|
||||
tp->disp = 0;
|
||||
tpl->opcode = JMP32_INSN_OPCODE;
|
||||
tpl->disp = 0;
|
||||
break;
|
||||
|
||||
default: /* unknown instruction */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user