Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9f9294a authored by Glauber de Oliveira Costa's avatar Glauber de Oliveira Costa Committed by Ingo Molnar
Browse files

x86: add callin tests to cpu_up



Now that we boot cpus here, callin_map has this meaning (same
as x86_64)

Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 07178269
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -839,6 +839,7 @@ int __cpuinit native_cpu_up(unsigned int cpu)
{
	int apicid = cpu_present_to_apicid(cpu);
	unsigned long flags;
	int err;

	WARN_ON(irqs_disabled());

@@ -850,6 +851,14 @@ int __cpuinit native_cpu_up(unsigned int cpu)
		return -EINVAL;
	}

	/*
	 * Already booted CPU?
	 */
	if (cpu_isset(cpu, cpu_callin_map)) {
		Dprintk("do_boot_cpu %d Already started\n", cpu);
		return -ENOSYS;
	}

	/*
	 * Save current MTRR state in case it was changed since early boot
	 * (e.g. by the ACPI SMI) to initialize new CPUs with MTRRs in sync:
@@ -863,15 +872,12 @@ int __cpuinit native_cpu_up(unsigned int cpu)
			min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
	flush_tlb_all();

	do_boot_cpu(apicid, cpu);

	/* In case one didn't come up */
	if (!cpu_isset(cpu, cpu_callin_map)) {
		printk(KERN_DEBUG "skipping cpu%d, didn't come online\n", cpu);
		return -EIO;
	err = do_boot_cpu(apicid, cpu);
	if (err < 0) {
		Dprintk("do_boot_cpu failed %d\n", err);
		return err;
	}


	/*
	 * Check TSC synchronization with the AP (keep irqs disabled
	 * while doing so):