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 - 17:34:04 EST

On 9/30/2016 5:27 PM, Rafael J. Wysocki wrote:
> On Fri, Sep 30, 2016 at 11:14 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote:
>> On 9/30/2016 5:04 PM, Rafael J. Wysocki wrote:
>>>>> I hope it makes sense now. I tend to skip details sometimes. Feel free to
>>>>> send more questions.
>>> Thanks for the information!
>>> IIUC, basically, what you are proposing would be to restore the old
>>> penalizing method for IRQs in the 0-255 range and use the new approach
>>> for the rest, right?
>> Correct.
>>> What's the drawback, if any?
>> I don't see any drawback to be honest.
> I'd go for it then, if Bjorn doesn't hate it.

OK. I'll prep something.

>> The reason why I got rid of these ISA
>> API functions was to remove some of the x86ism from ACPI code. This was Bjorn's
>> request to clean it up and we failed in two places so far.
>> 1. acpi_irq_penalty_init
>> 2. acpi_penalize_sci_irq
>> and we ended up reverting both of these changes. The reverts are all because of the
>> fact that these APIs are called asynchronously without any coordination with the
>> PCI Link object or the interrupt controller driver about when it is a good time to be
>> called.
>> During this debug, I learnt that acpi_penalize_isa_irq gets called before even ACPI
>> gets to initialize and relies on static IRQ array for keeping the penalties.
> So maybe add some comments to that code to explain why things are
> arranged the way they are. We may need/want to revisit it at one
> point and such comments will be very useful then.

Yeah, I think this code definitely needs some documentation. It ended up being
one of the most fragile places in the kernel. This is my 3rd attempt to rearrange
the code.

> Thanks,
> Rafael
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at

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.