Re: [tip: x86/apic] x86/io_apic: Cleanup trigger/polarity helpers
From: Tom Lendacky
Date: Tue Nov 10 2020 - 09:55:33 EST
On 11/10/20 8:34 AM, Thomas Gleixner wrote:
> On Tue, Nov 10 2020 at 07:10, Borislav Petkov wrote:
>
>> On Mon, Nov 09, 2020 at 05:15:03PM -0600, Tom Lendacky wrote:
>>> [ 105.325371] hpet: Lost 9601 RTC interrupts
>>> [ 105.485766] hpet: Lost 9600 RTC interrupts
>>> [ 105.639182] hpet: Lost 9601 RTC interrupts
>>> [ 105.792155] hpet: Lost 9601 RTC interrupts
>>> [ 105.947076] hpet: Lost 9601 RTC interrupts
>>> [ 106.100876] hpet: Lost 9600 RTC interrupts
>>> [ 106.253444] hpet: Lost 9601 RTC interrupts
>>> [ 106.406722] hpet: Lost 9601 RTC interrupts
>>>
>>> preventing the system from booting. I bisected it to this commit.
>>
>> I bisected it to the exact same thing too, on an AMD laptop, after seeing what
>> you're seeing.
>
> Bah. I'm a moron.
>
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -809,9 +809,9 @@ static bool irq_is_level(int idx)
> case MP_IRQTRIG_DEFAULT:
> /*
> * Conforms to spec, ie. bus-type dependent trigger
> - * mode. PCI defaults to egde, ISA to level.
> + * mode. PCI defaults to level, ISA to edge.
> */
> - level = test_bit(bus, mp_bus_not_pci);
> + level = !test_bit(bus, mp_bus_not_pci);
> /* Take EISA into account */
> return eisa_irq_is_level(idx, bus, level);
> case MP_IRQTRIG_EDGE:
>
I was about to send the dmesg output when I saw this. A quick test with
this change resolves the boot issue, thanks!
I'm still seeing the warning at arch/x86/kernel/apic/apic.c:2527, but I'll
start a separate thread on that.
Thanks,
Tom