x86: fix: do not run code in amd_bus.c on non-AMD CPUs

Jan Beulich wrote:

> Even worse - this would even try to access the MSR on non-AMD CPUs
> (currently probably prevented just by the fact that only AMD ones use
> family values of 0x10 or higher).

This patch adds cpu vendor check to the postcore_initcalls.

Reported-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Robert Richter 2008-08-22 20:23:37 +02:00 committed by Ingo Molnar
parent 9754a5b840
commit 9b4e27b528

View File

@ -555,9 +555,11 @@ static int __init early_fill_mp_bus_info(void)
return 0;
}
postcore_initcall(early_fill_mp_bus_info);
#else /* !CONFIG_X86_64 */
#endif
static int __init early_fill_mp_bus_info(void) { return 0; }
#endif /* !CONFIG_X86_64 */
/* common 32/64 bit code */
@ -583,4 +585,15 @@ static int __init enable_pci_io_ecs(void)
return 0;
}
postcore_initcall(enable_pci_io_ecs);
static int __init amd_postcore_init(void)
{
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
return 0;
early_fill_mp_bus_info();
enable_pci_io_ecs();
return 0;
}
postcore_initcall(amd_postcore_init);