aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/boot/compressed/eboot.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
index 5c0dc55f2387..a7677babf946 100644
--- a/arch/x86/boot/compressed/eboot.c
+++ b/arch/x86/boot/compressed/eboot.c
@@ -748,7 +748,7 @@ free_mem_map:
748struct boot_params *efi_main(void *handle, efi_system_table_t *_table, 748struct boot_params *efi_main(void *handle, efi_system_table_t *_table,
749 struct boot_params *boot_params) 749 struct boot_params *boot_params)
750{ 750{
751 struct desc_ptr *gdt, *idt; 751 struct desc_ptr *gdt;
752 efi_loaded_image_t *image; 752 efi_loaded_image_t *image;
753 struct setup_header *hdr = &boot_params->hdr; 753 struct setup_header *hdr = &boot_params->hdr;
754 efi_status_t status; 754 efi_status_t status;
@@ -780,17 +780,6 @@ struct boot_params *efi_main(void *handle, efi_system_table_t *_table,
780 goto fail; 780 goto fail;
781 } 781 }
782 782
783 status = efi_call_phys3(sys_table->boottime->allocate_pool,
784 EFI_LOADER_DATA, sizeof(*idt),
785 (void **)&idt);
786 if (status != EFI_SUCCESS) {
787 efi_printk(sys_table, "Failed to alloc mem for idt structure\n");
788 goto fail;
789 }
790
791 idt->size = 0;
792 idt->address = 0;
793
794 /* 783 /*
795 * If the kernel isn't already loaded at the preferred load 784 * If the kernel isn't already loaded at the preferred load
796 * address, relocate it. 785 * address, relocate it.
@@ -865,10 +854,8 @@ struct boot_params *efi_main(void *handle, efi_system_table_t *_table,
865 desc->base2 = 0x00; 854 desc->base2 = 0x00;
866#endif /* CONFIG_X86_64 */ 855#endif /* CONFIG_X86_64 */
867 856
868 asm volatile ("lidt %0" : : "m" (*idt));
869 asm volatile ("lgdt %0" : : "m" (*gdt));
870
871 asm volatile("cli"); 857 asm volatile("cli");
858 asm volatile ("lgdt %0" : : "m" (*gdt));
872 859
873 return boot_params; 860 return boot_params;
874fail: 861fail: