Bug 1459186 - quirks patch 4.11 kernel for HP m400 to disable interrupt producer/consumer check
quirks patch 4.11 kernel for HP m400 to disable interrupt producer/consumer c...
Status: NEW
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
26
aarch64 Linux
medium Severity high
: ---
: ---
Assigned To: Kernel Maintainer List
Fedora Extras Quality Assurance
:
Depends On:
Blocks: 1045641
  Show dependency treegraph
 
Reported: 2017-06-06 09:31 EDT by Jeff Bastian
Modified: 2018-02-07 14:24 EST (History)
21 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1285107
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jeff Bastian 2017-06-06 09:31:17 EDT
+++ This bug was initially created as a clone of Bug #1285107 +++

Please apply the patch below to remove a check on interrupt producer/consumer values.  This is a quirk patch to workaround a bug in the HP m400 ACPI tables.


--- Additional comment from Jeff Bastian on 2017-05-25 16:17:17 CDT ---

I tested with Fedora-26-20170523.n.0 and kernel-4.11.0-2.el7.aarch64 gets past the problems seen in bug 1285107 comment 29, but it hangs later in boot.

EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.11.0-2.fc26.aarch64 (mockbuild@buildvm-aarch64-01.arm.fedoraproject.org) (gcc version 7.1.1 20170503 (Red Hat 7.1.1-1) (GCC) ) #1 SMP Tue May 9 15:09:58 UTC 2017
...
[    0.000000] ACPI: RSDP 0x0000004FF8000000 000024 (v02 HP    )
[    0.000000] ACPI: XSDT 0x0000004FF7FF0000 000084 (v01 HP     ProLiant 00000001      01000013)
[    0.000000] ACPI: FACP 0x0000004FF7FB0000 000114 (v06 HPE    ProLiant 00000001 HP   00000001)
...
[    0.000000] Kernel command line: BOOT_IMAGE=(tftp)/F26-20170523.n.0/vmlinuz vnc repo=http://10.0.0.1/F26-20170523.n.0/ console=ttyS0,9600 earlycon=uart,mmio32,0x1c021000 verbose debug
...
[   17.494298] xgene-gpio APMC0D14:00: X-Gene GPIO driver registered.
[   17.568313] pcieport 0000:00:00.0: can't derive routing for PCI INT A
[   17.645381] pcieport 0000:00:00.0: PCI INT A: no GSI
[   17.704898] pcie_pme: probe of 0000:00:00.0:pcie001 failed with error -22
[   17.786673] GHES: Failed to enable APEI firmware first mode.
[   17.854865] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[   17.954600] dw-apb-uart APMC0D08:00: cannot get irq


This is as far as it gets into booting.

--- Additional comment from Mark Salter on 2017-05-26 09:54:48 CDT ---

This is the problem Jeremy Linton found:

"4.11 integrated patches for the MBIGEN interrupt controller, as part of this work additional checks were added in various places. One check in particular verifies that the interrupt producer/consumer direction is correct. This breaks the HP M400 serial console devices which makes the machine appear to fail to boot.
    
The correct fix for this is updated ACPI tables, in the interim lets patch the kernel so testing/qa/etc can continue."

The only workaround is to patch kernel:

diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c
index 830299a..fec7d2b 100644
--- a/drivers/acpi/irq.c
+++ b/drivers/acpi/irq.c
@@ -200,8 +200,6 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares,
                return AE_CTRL_TERMINATE;
        case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
                eirq = &ares->data.extended_irq;
-               if (eirq->producer_consumer == ACPI_PRODUCER)
-                       return AE_OK;
                if (ctx->index >= eirq->interrupt_count) {
                        ctx->index -= eirq->interrupt_count;
                        return AE_OK;

Note You need to log in before you can comment on or make changes to this bug.