Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 asm updates from Thomas Gleixner: "The lowlevel and ASM code updates for x86: - Make stack trace unwinding more reliable - ASM instruction updates for better code generation - Various cleanups" * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/entry/64: Add two more instruction suffixes x86/asm/64: Use 32-bit XOR to zero registers x86/build/vdso: Simplify 'cmd_vdso2c' x86/build/vdso: Remove unused vdso-syms.lds x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE for the ORC unwinder x86/unwind/orc: Detect the end of the stack x86/stacktrace: Do not fail for ORC with regs on stack x86/stacktrace: Clarify the reliable success paths x86/stacktrace: Remove STACKTRACE_DUMP_ONCE x86/stacktrace: Do not unwind after user regs x86/asm: Use CC_SET/CC_OUT in percpu_cmpxchg8b_double() to micro-optimize code generation
This commit is contained in:
@@ -92,7 +92,7 @@ END(native_usergs_sysret64)
|
||||
.endm
|
||||
|
||||
.macro TRACE_IRQS_IRETQ_DEBUG
|
||||
bt $9, EFLAGS(%rsp) /* interrupts off? */
|
||||
btl $9, EFLAGS(%rsp) /* interrupts off? */
|
||||
jnc 1f
|
||||
TRACE_IRQS_ON_DEBUG
|
||||
1:
|
||||
@@ -408,6 +408,7 @@ ENTRY(ret_from_fork)
|
||||
|
||||
1:
|
||||
/* kernel thread */
|
||||
UNWIND_HINT_EMPTY
|
||||
movq %r12, %rdi
|
||||
CALL_NOSPEC %rbx
|
||||
/*
|
||||
@@ -701,7 +702,7 @@ retint_kernel:
|
||||
#ifdef CONFIG_PREEMPT
|
||||
/* Interrupts are off */
|
||||
/* Check if we need preemption */
|
||||
bt $9, EFLAGS(%rsp) /* were interrupts off? */
|
||||
btl $9, EFLAGS(%rsp) /* were interrupts off? */
|
||||
jnc 1f
|
||||
0: cmpl $0, PER_CPU_VAR(__preempt_count)
|
||||
jnz 1f
|
||||
|
Reference in New Issue
Block a user