[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: ac0ee0a9560c97fa5fe1409e450c2425d4ebd17a
WARNING: Author mismatch between patch and upstream commit: Backport author: Pawan Guptapawan.kumar.gupta@linux.intel.com Commit author: Peter Zijlstrapeterz@infradead.org
Status in newer kernel trees: 6.15.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (exact SHA1) 6.1.y | Present (different SHA1: c51a456b4179) 5.15.y | Present (different SHA1: 7339b1ce5ea6)
Note: The patch differs from the upstream commit: --- 1: ac0ee0a9560c9 ! 1: afe5930bd1f3d x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions @@ Metadata ## Commit message ## x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions
+ commit ac0ee0a9560c97fa5fe1409e450c2425d4ebd17a upstream. + In order to re-write Jcc.d32 instructions text_poke_bp() needs to be taught about them.
@@ Commit message last 5 bytes and adding the rule that 'length == 6' instruction will be prefixed with a 0x0f byte.
+ Change-Id: Ie3f72c6b92f865d287c8940e5a87e59d41cfaa27 Signed-off-by: Peter Zijlstra (Intel) peterz@infradead.org Signed-off-by: Ingo Molnar mingo@kernel.org Reviewed-by: Masami Hiramatsu (Google) mhiramat@kernel.org Link: https://lore.kernel.org/r/20230123210607.115718513@infradead.org + [cascardo: there is no emit_call_track_retpoline] + Signed-off-by: Thadeu Lima de Souza Cascardo cascardo@igalia.com + Signed-off-by: Pawan Gupta pawan.kumar.gupta@linux.intel.com
## arch/x86/kernel/alternative.c ## @@ arch/x86/kernel/alternative.c: void __init_or_module noinline apply_alternatives(struct alt_instr *start, - } + kasan_enable_current(); }
+static inline bool is_jcc32(struct insn *insn) @@ arch/x86/kernel/alternative.c: void __init_or_module noinline apply_alternatives + return insn->opcode.bytes[0] == 0x0f && (insn->opcode.bytes[1] & 0xf0) == 0x80; +} + - #if defined(CONFIG_RETPOLINE) && defined(CONFIG_OBJTOOL) + #if defined(CONFIG_RETPOLINE) && defined(CONFIG_STACK_VALIDATION)
/* -@@ arch/x86/kernel/alternative.c: static int emit_indirect(int op, int reg, u8 *bytes) - return i; - } - --static inline bool is_jcc32(struct insn *insn) --{ -- /* Jcc.d32 second opcode byte is in the range: 0x80-0x8f */ -- return insn->opcode.bytes[0] == 0x0f && (insn->opcode.bytes[1] & 0xf0) == 0x80; --} -- - static int emit_call_track_retpoline(void *addr, struct insn *insn, int reg, u8 *bytes) - { - u8 op = insn->opcode.bytes[0]; @@ arch/x86/kernel/alternative.c: void text_poke_sync(void) on_each_cpu(do_sync_core, NULL, 1); } @@ arch/x86/kernel/alternative.c: static void text_poke_loc_init(struct text_poke_l case JMP32_INSN_OPCODE: @@ arch/x86/kernel/alternative.c: static void text_poke_loc_init(struct text_poke_loc *tp, void *addr, BUG_ON(len != insn.length); - } + };
- switch (tp->opcode) { ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.15.y | Success | Success |