The issue here is the error handling within the ACPI layer. gsi = 0 is a valid return value from acpi_pci_irq_lookup, while gsi = (-1) is the value returned when a PRT cannot be found. This error in error handling can result in a WARN_ON at arch/ia64/kernel/iosapic.c:622 . The remaining fix is to complete error handling within the core IDE layer and the IOC4 IDE driver.