On Fri, 08 Aug 2003 09:15:03 -0400, Jeff Garzik wrote:
If you change NCAPINTS you also have to change the hardcoded
struct offset X86_VENDOR_ID in arch/i386/kernel/head.S. Otherwise
nasty stuff happen at boot since boot_cpu_data gets broken.
hmmm, reality doesn't seem to bear that out... I made the same change to 2.6, without touching head.S, and life continues without "nasty stuff" AFAICS.
Do both 2.4 and 2.6 need this change? And, why didn't 2.6 break?
2.4.21-rc1 with NCAPINTS==6 hangs at boot in the local
APIC timer calibration step; before that it detected a
0MHz bus clock and the local APIC NMI watchdog was stuck.
Correcting head.S:X86_VENDOR_ID fixes these problems.
Without correcting head.S:X86_VENDOR_ID, head.S will store
the vendor id partly in the capabilities array. This breaks
both the capabilities and the vendor id. I can't say why 2.6
works, but obviously the CPU setup code has changed since 2.4.
BTW, the patch below should be applied to 2.6.