[PATCH][POKE] Skip looking for ioapic overrides when ioapics are not present

From: Florian Mickler
Date: Thu Mar 31 2011 - 04:02:45 EST


From: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>

Avinash Kurup <kurup.avinash@xxxxxxxxx> writes:

> Hi Eric,
> ÂÂÂ I get the following errors while booting into 2.6.35-rc1. I did not
> get these in 2.6.34 . The computer however boots and works fine, So its not
> serious but the following errors are displayed in dmesg.
>
> [ÂÂÂ 0.089969] ERROR: Unable to locate IOAPIC for GSI 13
> [ÂÂÂ 0.090556] ERROR: Unable to locate IOAPIC for GSI 8
> [ÂÂÂ 0.091104] ERROR: Unable to locate IOAPIC for GSI 12
> [ÂÂÂ 0.091375] ERROR: Unable to locate IOAPIC for GSI 1
> [ÂÂÂ 0.093195] ERROR: Unable to locate IOAPIC for GSI 4
> [ÂÂÂ 0.094342] ERROR: Unable to locate IOAPIC for GSI 10
> [ÂÂÂ 0.096335] ERROR: Unable to locate IOAPIC for GSI 6

The new warning originates from acpi_get_override_irq, which I changed to
use helper functions that warn when they fail.

When IOAPICs and ACPI are enabled in a kernel and run on ACPI hardware
that doesn't use the ioapics the pnp acpi code calls this function,
looking for ACPI irq overrides. ACPI irq overrides exist only in the
ioapic case so this function will never succeed. So make the function
fail fast so we don't call into help functions that legitimately
complain when they fail.

[I submit this as the corresponding bug report is still not closed, the patch
not merged, distributions applying this patch, it is tested to work and I found
nowhere any resoning as to why this should be out of tree. I just guessed on
the stable tag and number. -Florian]

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=17772
Tested-by: Avinash Kurup <kurup.avinash@xxxxxxxxx>
Tested-by: zersaa@xxxxxxxxx
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Signed-off-by: Florian Mickler <florian@xxxxxxxxxxx>
CC: kurup_avinash@xxxxxxxxx
CC: maciej.rutecki@xxxxxxxxx
CC: mingo@xxxxxxx
CC: rjw@xxxxxxx
CC: sedat.dilek@xxxxxxxxx
CC: zersaa@xxxxxxxxx
CC: akpm@xxxxxxxxxxxxxxxxxxxx
CC: stable@xxxxxxxxxx [.34+]

---

arch/x86/kernel/apic/io_apic.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 68df09b..3940103 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3789,6 +3789,9 @@ int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity)
{
int ioapic, pin, idx;

+ if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC)
+ return -1;
+
if (skip_ioapic_setup)
return -1;

--
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/