x86: sanity check APIC timer frequency
Check the APIC timer calibration result for sanity. When the frequency is out of range, issue a warning and disable the local APIC timer. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
387faedb1d
commit
c2b84b30b8
@ -470,6 +470,19 @@ void __init setup_boot_APIC_clock(void)
|
|||||||
|
|
||||||
local_apic_timer_verify_ok = 1;
|
local_apic_timer_verify_ok = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do a sanity check on the APIC calibration result
|
||||||
|
*/
|
||||||
|
if (calibration_result < (1000000 / HZ)) {
|
||||||
|
local_irq_enable();
|
||||||
|
printk(KERN_WARNING
|
||||||
|
"APIC frequency too slow, disabling apic timer\n");
|
||||||
|
/* No broadcast on UP ! */
|
||||||
|
if (num_possible_cpus() > 1)
|
||||||
|
setup_APIC_timer();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* We trust the pm timer based calibration */
|
/* We trust the pm timer based calibration */
|
||||||
if (!pm_referenced) {
|
if (!pm_referenced) {
|
||||||
apic_printk(APIC_VERBOSE, "... verify APIC timer\n");
|
apic_printk(APIC_VERBOSE, "... verify APIC timer\n");
|
||||||
|
@ -383,6 +383,18 @@ void __init setup_boot_APIC_clock(void)
|
|||||||
printk(KERN_INFO "Using local APIC timer interrupts.\n");
|
printk(KERN_INFO "Using local APIC timer interrupts.\n");
|
||||||
calibrate_APIC_clock();
|
calibrate_APIC_clock();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do a sanity check on the APIC calibration result
|
||||||
|
*/
|
||||||
|
if (calibration_result < (1000000 / HZ)) {
|
||||||
|
printk(KERN_WARNING
|
||||||
|
"APIC frequency too slow, disabling apic timer\n");
|
||||||
|
/* No broadcast on UP ! */
|
||||||
|
if (num_possible_cpus() > 1)
|
||||||
|
setup_APIC_timer();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If nmi_watchdog is set to IO_APIC, we need the
|
* If nmi_watchdog is set to IO_APIC, we need the
|
||||||
* PIT/HPET going. Otherwise register lapic as a dummy
|
* PIT/HPET going. Otherwise register lapic as a dummy
|
||||||
|
Loading…
Reference in New Issue
Block a user