diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/cpu/cpufreq/longhaul.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c index d735cb460612..dfd243f497b2 100644 --- a/arch/i386/kernel/cpu/cpufreq/longhaul.c +++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c | |||
@@ -688,6 +688,18 @@ static int __init longhaul_init(void) | |||
688 | if (c->x86_vendor != X86_VENDOR_CENTAUR || c->x86 != 6) | 688 | if (c->x86_vendor != X86_VENDOR_CENTAUR || c->x86 != 6) |
689 | return -ENODEV; | 689 | return -ENODEV; |
690 | 690 | ||
691 | #ifdef CONFIG_SMP | ||
692 | if (num_online_cpus() > 1) { | ||
693 | return -ENODEV; | ||
694 | printk(KERN_ERR PFX "More than 1 CPU detected, longhaul disabled.\n"); | ||
695 | } | ||
696 | #endif | ||
697 | #ifdef CONFIG_X86_IO_APIC | ||
698 | if (cpu_has_apic) { | ||
699 | printk(KERN_ERR PFX "APIC detected. Longhaul is currently broken in this configuration.\n"); | ||
700 | return -ENODEV; | ||
701 | } | ||
702 | #endif | ||
691 | switch (c->x86_model) { | 703 | switch (c->x86_model) { |
692 | case 6 ... 9: | 704 | case 6 ... 9: |
693 | return cpufreq_register_driver(&longhaul_driver); | 705 | return cpufreq_register_driver(&longhaul_driver); |