+3
-3
Documentation/x86/boot.rst
+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
+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)