On Wed, 29 Mar 2017, Dou Liyang wrote: > +/* Setup local APIC timer and get the Id*/ > +static int __init apic_bsp_timer_setup(void)
This does not make sense. The id and the timers have nothing to do with each other. > +{ > + int id; > + > + if (x2apic_mode) > + id = apic_read(APIC_LDR); > + else > + id = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR)); > + > + if (!skip_ioapic_setup && nr_ioapics && nr_legacy_irqs()) > + check_timer(); Why are you moving this to the APIC? check_timer() has absolutely nothing to do with the apic timer. It's a IOAPIC only issue and required to test that the IRQ0 interrupt delivery works through the IOAPIC. Thanks, tglx