[PROBLEM] x86: result of verify_local_APIC() is ignored

From: Jon
Date: Thu Feb 06 2014 - 19:52:47 EST


In arch/x86/kernel/apic/apic.c there is a function called
verify_local_APIC() that does some APIC checks. The part where it writes
to the APIC ID register can cause CPU #15 to not come online under
VMware ESXi on 32-bit kernels if the virtual hardware version is 8.

I noticed that Ingo actually removed this exact chunk of code from
arch/i386/kernel/apic.c in 2.6.4, but since it was left in the x86_64
copy it came back when the two were merged.
http://permalink.gmane.org/gmane.linux.kernel.commits.head/27538

The Intel architecture manuals seem to agree and notes that the recent
Intel CPUs do not allow writing to the register which means that
machines are actually failing this check... which doesn't matter becuase
none of the callers are checking the return value of this function
anyway.

--
Jon
X(7): A program for managing terminal windows. See also screen(1).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/