Skip to contentSkip to conversation

Patch "ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Nov 17, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages

to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
acpi-pci-irq-assign-isa-irq-directly-during-early-boot-stages.patch
and it can be found in the queue-4.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From eeaed4bb5a35591470b545590bb2f26dbe7653a2 Mon Sep 17 00:00:00 2001

From: Sinan Kaya <[email protected]>
Date: Mon, 24 Oct 2016 00:31:30 -0400
Subject: ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages

From: Sinan Kaya <[email protected]>

commit eeaed4bb5a35591470b545590bb2f26dbe7653a2 upstream.

We do not want to store the SCI penalty in the acpi_isa_irq_penalty[] table because acpi_isa_irq_penalty[] only holds ISA IRQ penalties and there's no guarantee that the SCI is an ISA IRQ. We add in the SCI penalty as a special case in acpi_irq_get_penalty().

But if we called acpi_penalize_isa_irq() or acpi_irq_penalty_update() for an SCI that happened to be an ISA IRQ, they stored the SCI penalty (part of the acpi_irq_get_penalty() return value) in acpi_isa_irq_penalty[]. Subsequent calls to acpi_irq_get_penalty() returned a penalty that included *two* SCI penalties.

Fixes 103544d86976 (ACPI,PCI,IRQ: reduce resource requirements)
---
 drivers/acpi/pci_link.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/acpi/pci_link.c +2 -2
@@ -849,7 +849,7 @@ static int __init acpi_irq_penalty_updat
 			continue;
 
 		if (used)
-			new_penalty = acpi_irq_get_penalty(irq) +
+			new_penalty = acpi_isa_irq_penalty[irq] +
 					PIRQ_PENALTY_ISA_USED;
 		else
 			new_penalty = 0;
@@ -871,7 +871,7 @@ static int __init acpi_irq_penalty_updat
 void acpi_penalize_isa_irq(int irq, int active)
 {
 	if ((irq >= 0) && (irq < ARRAY_SIZE(acpi_isa_irq_penalty)))
-		acpi_isa_irq_penalty[irq] = acpi_irq_get_penalty(irq) +
+		acpi_isa_irq_penalty[irq] +=
 		  (active ? PIRQ_PENALTY_ISA_USED : PIRQ_PENALTY_PCI_USING);
 }
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/acpi-pci-pci_link-penalize-sci-correctly.patch queue-4.8/acpi-pci-irq-assign-isa-irq-directly-during-early-boot-stages.patch queue-4.8/acpi-pci-pci_link-include-pirq_penalty_pci_using-for-isa-irqs.patch