Commit c253b640 authored by Brian Gerst's avatar Brian Gerst Committed by Thomas Gleixner
Browse files

x86/smpboot: Remove early_gdt_descr on 64-bit

parent 3adee777
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -127,8 +127,6 @@ int x86_acpi_suspend_lowlevel(void)
	 * value is in the actual %rsp register.
	 */
	current->thread.sp = (unsigned long)temp_stack + sizeof(temp_stack);
	early_gdt_descr.address =
			(unsigned long)get_cpu_gdt_rw(smp_processor_id());
	initial_gs = per_cpu_offset(smp_processor_id());
	smpboot_control = smp_processor_id();
#endif
+6 −5
Original line number Diff line number Diff line
@@ -265,7 +265,12 @@ SYM_INNER_LABEL(secondary_startup_64_no_verify, SYM_L_GLOBAL)
	 * addresses where we're currently running on. We have to do that here
	 * because in 32bit we couldn't load a 64bit linear address.
	 */
	lgdt	early_gdt_descr(%rip)
	subq	$16, %rsp
	movw	$(GDT_SIZE-1), (%rsp)
	leaq	gdt_page(%rdx), %rax
	movq	%rax, 2(%rsp)
	lgdt	(%rsp)
	addq	$16, %rsp

	/* set up data segments */
	xorl %eax,%eax
@@ -667,10 +672,6 @@ SYM_DATA_END(level1_fixmap_pgt)
	.data
	.align 16

SYM_DATA(early_gdt_descr,		.word GDT_ENTRIES*8-1)
SYM_DATA_LOCAL(early_gdt_descr_base,	.quad INIT_PER_CPU_VAR(gdt_page))

	.align 16
SYM_DATA(smpboot_control,		.long 0)

	.align 16
+1 −1
Original line number Diff line number Diff line
@@ -1086,10 +1086,10 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle,
		start_ip = real_mode_header->trampoline_start64;
#endif
	idle->thread.sp = (unsigned long)task_pt_regs(idle);
	early_gdt_descr.address = (unsigned long)get_cpu_gdt_rw(cpu);
	initial_code = (unsigned long)start_secondary;

	if (IS_ENABLED(CONFIG_X86_32)) {
		early_gdt_descr.address = (unsigned long)get_cpu_gdt_rw(cpu);
		initial_stack  = idle->thread.sp;
	} else {
		smpboot_control = cpu;