Merge tag 'x86-urgent-2020-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
"Two fixes:

- Fix a (hopefully final) IRQ state tracking bug vs MCE handling

- Fix a documentation link"

* tag 'x86-urgent-2020-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
Documentation/x86: Fix incorrect references to zero-page.txt
x86/mce: Use idtentry_nmi_enter/exit()

Changed files
+7 -5
Documentation
x86
arch
x86
kernel
cpu
mce
+3 -3
Documentation/x86/boot.rst
··· 1342 1342 1343 1343 In addition to read/modify/write the setup header of the struct 1344 1344 boot_params as that of 16-bit boot protocol, the boot loader should 1345 - also fill the additional fields of the struct boot_params as that 1346 - described in zero-page.txt. 1345 + also fill the additional fields of the struct boot_params as 1346 + described in chapter :doc:`zero-page`. 1347 1347 1348 1348 After setting up the struct boot_params, the boot loader can load the 1349 1349 32/64-bit kernel in the same way as that of 16-bit boot protocol. ··· 1379 1379 In addition to read/modify/write the setup header of the struct 1380 1380 boot_params as that of 16-bit boot protocol, the boot loader should 1381 1381 also fill the additional fields of the struct boot_params as described 1382 - in zero-page.txt. 1382 + in chapter :doc:`zero-page`. 1383 1383 1384 1384 After setting up the struct boot_params, the boot loader can load 1385 1385 64-bit kernel in the same way as that of 16-bit boot protocol, but
+4 -2
arch/x86/kernel/cpu/mce/core.c
··· 1904 1904 1905 1905 static __always_inline void exc_machine_check_kernel(struct pt_regs *regs) 1906 1906 { 1907 + bool irq_state; 1908 + 1907 1909 WARN_ON_ONCE(user_mode(regs)); 1908 1910 1909 1911 /* ··· 1916 1914 mce_check_crashing_cpu()) 1917 1915 return; 1918 1916 1919 - nmi_enter(); 1917 + irq_state = idtentry_enter_nmi(regs); 1920 1918 /* 1921 1919 * The call targets are marked noinstr, but objtool can't figure 1922 1920 * that out because it's an indirect call. Annotate it. ··· 1927 1925 if (regs->flags & X86_EFLAGS_IF) 1928 1926 trace_hardirqs_on_prepare(); 1929 1927 instrumentation_end(); 1930 - nmi_exit(); 1928 + idtentry_exit_nmi(regs, irq_state); 1931 1929 } 1932 1930 1933 1931 static __always_inline void exc_machine_check_user(struct pt_regs *regs)