diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 4330a899ddcbd97036809cc2e042688a6e8aa75e..ffbad74e5be047b54120a0d3727a117e52300050 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c @@ -577,7 +577,6 @@ static void local_apic_timer_interrupt(void) * [ if a single-CPU system runs an SMP kernel then we call the local * interrupt as well. Thus we cannot inline the local irq ... ] */ - void smp_apic_timer_interrupt(struct pt_regs *regs) { struct pt_regs *old_regs = set_irq_regs(regs); @@ -1021,7 +1020,7 @@ void __cpuinit setup_local_APIC(void) /* * Detect and initialize APIC */ -static int __init detect_init_APIC (void) +static int __init detect_init_APIC(void) { u32 h, l, features; @@ -1165,7 +1164,7 @@ void __init init_apic_mappings(void) * This initializes the IO-APIC and APIC hardware if this is * a UP kernel. */ -int __init APIC_init_uniprocessor (void) +int __init APIC_init_uniprocessor(void) { if (enable_local_apic < 0) clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC); diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index 47b8ef51dde0473fc3b8509790ec5e82ebb778c3..d1a696673d9d7132f5bf0729bae111b5c73a4c1d 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c @@ -23,33 +23,37 @@ #include #include #include -#include #include #include #include +#include #include #include #include #include +#include #include #include #include #include #include #include -#include #include -int apic_verbosity; int disable_apic_timer __cpuinitdata; static int apic_calibrate_pmtmr __initdata; int disable_apic; -/* Local APIC timer works in C2? */ +/* Local APIC timer works in C2 */ int local_apic_timer_c2_ok; EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); +/* + * Debug level, exported for io_apic.c + */ +int apic_verbosity; + static struct resource lapic_resource = { .name = "Local APIC", .flags = IORESOURCE_MEM | IORESOURCE_BUSY, @@ -355,6 +359,11 @@ static void __init calibrate_APIC_clock(void) calibration_result = result / HZ; } +/* + * Setup the boot APIC + * + * Calibrate and verify the result. + */ void __init setup_boot_APIC_clock(void) { /* @@ -1109,8 +1118,8 @@ static struct sysdev_class lapic_sysclass = { }; static struct sys_device device_lapic = { - .id = 0, - .cls = &lapic_sysclass, + .id = 0, + .cls = &lapic_sysclass, }; static void __cpuinit apic_pm_activate(void) @@ -1121,9 +1130,11 @@ static void __cpuinit apic_pm_activate(void) static int __init init_lapic_sysfs(void) { int error; + if (!cpu_has_apic) return 0; /* XXX: remove suspend/resume procs if !apic_pm_state.active? */ + error = sysdev_class_register(&lapic_sysclass); if (!error) error = sysdev_register(&device_lapic);