File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -1904,6 +1904,8 @@ void (*machine_check_vector)(struct pt_regs *) = unexpected_machine_check;
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
/*
@@ -1914,7 +1916,7 @@ static __always_inline void exc_machine_check_kernel(struct pt_regs *regs)
1914
1916
mce_check_crashing_cpu ())
1915
1917
return ;
1916
1918
1917
- nmi_enter ( );
1919
+ irq_state = idtentry_enter_nmi ( regs );
1918
1920
/*
1919
1921
* The call targets are marked noinstr, but objtool can't figure
1920
1922
* that out because it's an indirect call. Annotate it.
@@ -1925,7 +1927,7 @@ static __always_inline void exc_machine_check_kernel(struct pt_regs *regs)
1925
1927
if (regs -> flags & X86_EFLAGS_IF )
1926
1928
trace_hardirqs_on_prepare ();
1927
1929
instrumentation_end ();
1928
- nmi_exit ( );
1930
+ idtentry_exit_nmi ( regs , irq_state );
1929
1931
}
1930
1932
1931
1933
static __always_inline void exc_machine_check_user (struct pt_regs * regs )
You can’t perform that action at this time.
0 commit comments