irqdomain patch prevents booting qemu

From: Jiri Slaby
Date: Fri Feb 03 2017 - 06:49:08 EST


Hi,

with this -next commit:

commit 08d85f3ea99f1eeafc4e8507936190e86a16ee8c
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Tue Jan 17 16:00:48 2017 +0000

irqdomain: Avoid activating interrupts more than once



I can no longer boot qemu machine. It stops booting at:
[ 0.477566] x2apic enabled
[ 0.478154] Switched APIC routing to physical x2apic.
[ 0.479405] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1


It loops in:
#0 calibrate_APIC_clock () at arch/x86/kernel/apic/apic.c:757
#1 setup_boot_APIC_clock () at arch/x86/kernel/apic/apic.c:880
#2 0xffffffff81f7bef2 in apic_bsp_setup (upmode=<optimized out>)
at arch/x86/kernel/apic/apic.c:2300
#3 0xffffffff81f79c84 in native_smp_prepare_cpus (max_cpus=<optimized out>)
at arch/x86/kernel/smpboot.c:1339
#4 0xffffffff81f6801d in smp_prepare_cpus (max_cpus=<optimized out>)
at ./arch/x86/include/asm/smp.h:85
#5 kernel_init_freeable () at init/main.c:1020
#6 0xffffffff8192372e in kernel_init (unused=<optimized out>)
at init/main.c:956
#7 0xffffffff8192ac5c in ret_from_fork () at arch/x86/entry/entry_64.S:430


which is:
757 while (lapic_cal_loops <= LAPIC_CAL_LOOPS)
758 cpu_relax();


lapic_cal_loops is not incrementing, so it seems that interrupts are not
coming.

Reverting the commit makes the machine boot again.

thanks,
--
js
suse labs