[PATCH v3 1/2] acpi: Fix proper return code for function acpi_gsi_to_irq
From: Marc Zyngier <hidden>
Date: 2016-01-12 19:32:32
Also in:
linux-acpi
On 12/01/16 19:13, Tuan Phan wrote:
On Tue, Jan 12, 2016 at 10:59 AM, Marc Zyngier [off-list ref] wrote:quoted
On 07/11/15 00:51, Loc Ho wrote:quoted
The function acpi_gsi_to_irq should returns 0 on success as upper function caller expect an 0 for sucesss.I have to ask: why do you feel the need to change an API that behaves like the rest of the IRQ allocation functions (at least when it comes to its return value)? 0 is defined as an invalid interrupt, and I wish it stayed that way.The upper caller expects 0 for success. In drivers/acpi/apei/ghes.c: case ACPI_HEST_NOTIFY_EXTERNAL: /* External interrupt vector is GSI */ rc = acpi_gsi_to_irq(generic->notify.vector, &ghes->irq); if (rc) { pr_err(GHES_PFX "Failed to map GSI to IRQ for generic hardware error source: %d\n", generic->header.source_id); goto err_edac_unreg; } Also the implementation of acpi_gsi_to_irq for X86 in arch/x86/kernel/acpi/boot.c also return 0 for success and -1 for failure. int acpi_gsi_to_irq(u32 gsi, unsigned int *irqp) { int rc, irq, trigger, polarity; if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) { *irqp = gsi; return 0; } rc = acpi_get_override_irq(gsi, &trigger, &polarity); if (rc == 0) { trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE; polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH; irq = acpi_register_gsi(NULL, gsi, trigger, polarity); if (irq >= 0) { *irqp = irq; return 0; } } return -1; }
Right. In which case please document this properly in the commit log. Thanks, M. -- Jazz is not dead. It just smells funny...