Skip to content

Commit 9c2b840

Browse files
committed
Merge tag 'x86-urgent-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Thomas Gleixner: "Three small x86 fixes which did not make it into 6.1: - Remove a superfluous noinline which prevents GCC-7.3 to optimize a stub function away - Allow uprobes on REP NOP and do not treat them like word-sized branch instructions - Make the VDSO symbol export of __vdso_sgx_enter_enclave() depend on CONFIG_X86_SGX to prevent build failures with newer LLVM versions which rightfully detect that there is no function behind the symbol" * tag 'x86-urgent-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/vdso: Conditionally export __vdso_sgx_enter_enclave() uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix x86/alternative: Remove noinline from __ibt_endbr_seal[_end]() stubs
2 parents 47477c8 + 45be2ad commit 9c2b840

3 files changed

Lines changed: 6 additions & 2 deletions

File tree

arch/x86/entry/vdso/vdso.lds.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ VERSION {
2727
__vdso_time;
2828
clock_getres;
2929
__vdso_clock_getres;
30+
#ifdef CONFIG_X86_SGX
3031
__vdso_sgx_enter_enclave;
32+
#endif
3133
local: *;
3234
};
3335
}

arch/x86/kernel/alternative.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ void __init_or_module noinline apply_ibt_endbr(s32 *start, s32 *end)
624624

625625
#else
626626

627-
void __init_or_module noinline apply_ibt_endbr(s32 *start, s32 *end) { }
627+
void __init_or_module apply_ibt_endbr(s32 *start, s32 *end) { }
628628

629629
#endif /* CONFIG_X86_KERNEL_IBT */
630630

arch/x86/kernel/uprobes.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -722,8 +722,9 @@ static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
722722
switch (opc1) {
723723
case 0xeb: /* jmp 8 */
724724
case 0xe9: /* jmp 32 */
725-
case 0x90: /* prefix* + nop; same as jmp with .offs = 0 */
726725
break;
726+
case 0x90: /* prefix* + nop; same as jmp with .offs = 0 */
727+
goto setup;
727728

728729
case 0xe8: /* call relative */
729730
branch_clear_offset(auprobe, insn);
@@ -753,6 +754,7 @@ static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
753754
return -ENOTSUPP;
754755
}
755756

757+
setup:
756758
auprobe->branch.opc1 = opc1;
757759
auprobe->branch.ilen = insn->length;
758760
auprobe->branch.offs = insn->immediate.value;

0 commit comments

Comments
 (0)