lkml.org 
[lkml]   [2016]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.8 75/92] ACPI/PCI/IRQ: assign ISA IRQ directly during early boot stages
    Date
    4.8-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Sinan Kaya <okaya@codeaurora.org>

    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)
    Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Tested-by: Jonathan Liu <net147@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/acpi/pci_link.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/acpi/pci_link.c
    +++ b/drivers/acpi/pci_link.c
    @@ -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);
    }


    \
     
     \ /
      Last update: 2016-11-17 11:53    [W:4.281 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site