> I'm involved with debugging a driver problem which only appears
> on dual AMD systems. When the driver's module_init() is called,
> boot_cpu_data.x86_vendor is 0 (Intel) instead of 2 (AMD), causing
> incorrect code to be selected and eventually an oops.
>
> We've so far traced it to the call to smp_init() in init/main.c.
> Before this call, boot_cpu_data.x86_vendor is 2 (correct), but
> after the call, the field is 0.
Code in arch/i386/kernel/head.S (look below checkCPUtype) clears
boot_cpu_data.x86_vendor and it does not get reconstructed after secondary
bootstraps. A common x86_vendor does not make sense anyway, at least in
principle (the whole cpu_data handling needs a rework but I have no time
to continue what I started last year and nobody else seems to work on it
either). Wouldn't current_cpu_data.x86_vendor suffice? That will work
for sure.
-- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/