Commit f73857ec authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'x86-boot-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 boot updates from Ingo Molnar:

 - Ignore NMIs during very early boot, to address kexec crashes

 - Remove redundant initialization in boot/string.c's strcmp()

* tag 'x86-boot-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/boot: Remove redundant initialization of the 'delta' variable in strcmp()
  x86/boot: Ignore NMIs during very early boot
parents 106b88d7 257ca14f
...@@ -386,3 +386,8 @@ void do_boot_page_fault(struct pt_regs *regs, unsigned long error_code) ...@@ -386,3 +386,8 @@ void do_boot_page_fault(struct pt_regs *regs, unsigned long error_code)
*/ */
kernel_add_identity_map(address, end); kernel_add_identity_map(address, end);
} }
void do_boot_nmi_trap(struct pt_regs *regs, unsigned long error_code)
{
/* Empty handler to ignore NMI during early boot */
}
...@@ -61,6 +61,7 @@ void load_stage2_idt(void) ...@@ -61,6 +61,7 @@ void load_stage2_idt(void)
boot_idt_desc.address = (unsigned long)boot_idt; boot_idt_desc.address = (unsigned long)boot_idt;
set_idt_entry(X86_TRAP_PF, boot_page_fault); set_idt_entry(X86_TRAP_PF, boot_page_fault);
set_idt_entry(X86_TRAP_NMI, boot_nmi_trap);
#ifdef CONFIG_AMD_MEM_ENCRYPT #ifdef CONFIG_AMD_MEM_ENCRYPT
/* /*
......
...@@ -70,6 +70,7 @@ SYM_FUNC_END(\name) ...@@ -70,6 +70,7 @@ SYM_FUNC_END(\name)
.code64 .code64
EXCEPTION_HANDLER boot_page_fault do_boot_page_fault error_code=1 EXCEPTION_HANDLER boot_page_fault do_boot_page_fault error_code=1
EXCEPTION_HANDLER boot_nmi_trap do_boot_nmi_trap error_code=0
#ifdef CONFIG_AMD_MEM_ENCRYPT #ifdef CONFIG_AMD_MEM_ENCRYPT
EXCEPTION_HANDLER boot_stage1_vc do_vc_no_ghcb error_code=1 EXCEPTION_HANDLER boot_stage1_vc do_vc_no_ghcb error_code=1
......
...@@ -196,6 +196,7 @@ static inline void cleanup_exception_handling(void) { } ...@@ -196,6 +196,7 @@ static inline void cleanup_exception_handling(void) { }
/* IDT Entry Points */ /* IDT Entry Points */
void boot_page_fault(void); void boot_page_fault(void);
void boot_nmi_trap(void);
void boot_stage1_vc(void); void boot_stage1_vc(void);
void boot_stage2_vc(void); void boot_stage2_vc(void);
......
...@@ -49,7 +49,7 @@ int strcmp(const char *str1, const char *str2) ...@@ -49,7 +49,7 @@ int strcmp(const char *str1, const char *str2)
{ {
const unsigned char *s1 = (const unsigned char *)str1; const unsigned char *s1 = (const unsigned char *)str1;
const unsigned char *s2 = (const unsigned char *)str2; const unsigned char *s2 = (const unsigned char *)str2;
int delta = 0; int delta;
while (*s1 || *s2) { while (*s1 || *s2) {
delta = *s1 - *s2; delta = *s1 - *s2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment