Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
"Misc fixes:

- a build race fix

- a Xen entry fix

- a TSC_DEADLINE quirk future-proofing fix"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/boot: Fix if_changed build flip/flop bug
x86/entry/64: Remove %ebx handling from error_entry/exit
x86/apic: Future-proof the TSC_DEADLINE quirk for SKX

+13 -16
+6 -2
arch/x86/boot/compressed/Makefile
··· 106 106 done 107 107 endef 108 108 109 + # We need to run two commands under "if_changed", so merge them into a 110 + # single invocation. 111 + quiet_cmd_check-and-link-vmlinux = LD $@ 112 + cmd_check-and-link-vmlinux = $(cmd_check_data_rel); $(cmd_ld) 113 + 109 114 $(obj)/vmlinux: $(vmlinux-objs-y) FORCE 110 - $(call if_changed,check_data_rel) 111 - $(call if_changed,ld) 115 + $(call if_changed,check-and-link-vmlinux) 112 116 113 117 OBJCOPYFLAGS_vmlinux.bin := -R .comment -S 114 118 $(obj)/vmlinux.bin: vmlinux FORCE
+4 -14
arch/x86/entry/entry_64.S
··· 981 981 982 982 call \do_sym 983 983 984 - jmp error_exit /* %ebx: no swapgs flag */ 984 + jmp error_exit 985 985 .endif 986 986 END(\sym) 987 987 .endm ··· 1222 1222 1223 1223 /* 1224 1224 * Save all registers in pt_regs, and switch GS if needed. 1225 - * Return: EBX=0: came from user mode; EBX=1: otherwise 1226 1225 */ 1227 1226 ENTRY(error_entry) 1228 1227 UNWIND_HINT_FUNC ··· 1268 1269 * for these here too. 1269 1270 */ 1270 1271 .Lerror_kernelspace: 1271 - incl %ebx 1272 1272 leaq native_irq_return_iret(%rip), %rcx 1273 1273 cmpq %rcx, RIP+8(%rsp) 1274 1274 je .Lerror_bad_iret ··· 1301 1303 1302 1304 /* 1303 1305 * Pretend that the exception came from user mode: set up pt_regs 1304 - * as if we faulted immediately after IRET and clear EBX so that 1305 - * error_exit knows that we will be returning to user mode. 1306 + * as if we faulted immediately after IRET. 1306 1307 */ 1307 1308 mov %rsp, %rdi 1308 1309 call fixup_bad_iret 1309 1310 mov %rax, %rsp 1310 - decl %ebx 1311 1311 jmp .Lerror_entry_from_usermode_after_swapgs 1312 1312 END(error_entry) 1313 1313 1314 - 1315 - /* 1316 - * On entry, EBX is a "return to kernel mode" flag: 1317 - * 1: already in kernel mode, don't need SWAPGS 1318 - * 0: user gsbase is loaded, we need SWAPGS and standard preparation for return to usermode 1319 - */ 1320 1314 ENTRY(error_exit) 1321 1315 UNWIND_HINT_REGS 1322 1316 DISABLE_INTERRUPTS(CLBR_ANY) 1323 1317 TRACE_IRQS_OFF 1324 - testl %ebx, %ebx 1325 - jnz retint_kernel 1318 + testb $3, CS(%rsp) 1319 + jz retint_kernel 1326 1320 jmp retint_user 1327 1321 END(error_exit) 1328 1322
+3
arch/x86/kernel/apic/apic.c
··· 573 573 case 0x04: return 0x02000014; 574 574 } 575 575 576 + if (boot_cpu_data.x86_stepping > 4) 577 + return 0; 578 + 576 579 return ~0U; 577 580 } 578 581