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

From: Sinan Kaya
Date: Fri Sep 30 2016 - 15:30:46 EST

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?

Do you have any other recommendation?

Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.