Re: 4.7 regression: ACPI: No IRQ available for PCI Interrupt Link [LNKD]. Try pci=noacpi or acpi=off

From: Rafael J. Wysocki
Date: Fri Sep 30 2016 - 15:39:30 EST


On Fri, Sep 30, 2016 at 9:30 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote:
> Rafael, Bjorn;
>
> On 9/30/2016 11:56 AM, Ondrej Zary wrote:
>>>> It seems to work, at least on one machine.
>>> >
>>> > Ok, that comfirms my suspicion. We are having trouble detecting sci
>>> > interrupt type and we end up penalizing the wrong value.
>>> >
>>> > Can you try your other machines too?
>> Works on the 2nd one too.
>>
>>> > I need to do some research now.
>
> Thanks for the confirmation. I need to gather some opinion from Rafael and Bjorn.
>
> The patch provided only handles SCI in the ISA IRQ range (<16)
>
> I looked at the ACPI spec. SCI interrupt is a two byte field:
>
> "SCI_INT byte 2 offset 46
>
> System vector the SCI interrupt is wired to in 8259 mode. On
> systems that do not contain the 8259, this field contains the
> Global System interrupt number of the SCI interrupt. OSPM is
> required to treat the ACPI SCI interrupt as a sharable, level,
> active low interrupt."
>
> Since we have a race condition between the time the IRQ is registered
> via the ISA API and the time it gets to the interrupt driver
> since irq_get_type function is not matching what SCI API indicated.
>
> how do we feel about increasing the ISA IRQ range to 256 so that
> we are safe for all SCI interrupts?

I'm not sure how this is related to the problem at hand. Care to elaborate?

And why exactly was that race condition not present before your changes?

Thanks,
Rafael