diff options
author | Paul Bolle <pebolle@tiscali.nl> | 2011-02-14 22:52:38 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-02-15 04:15:04 +0100 |
commit | 678301ecadec24ff77ab310eebf8a32ccddb1850 (patch) | |
tree | e98478769e2abc960623d5c044a1440e71411653 | |
parent | 1c9d16e35911090dee3f9313e6af13af623d66ee (diff) | |
download | linux-678301ecadec24ff77ab310eebf8a32ccddb1850.tar.gz linux-678301ecadec24ff77ab310eebf8a32ccddb1850.tar.bz2 linux-678301ecadec24ff77ab310eebf8a32ccddb1850.zip |
x86, ioapic: Don't warn about non-existing IOAPICs if we have none
mp_find_ioapic() prints errors like:
ERROR: Unable to locate IOAPIC for GSI 13
if it can't find the IOAPIC that manages that specific GSI. I
see errors like that at every boot of a laptop that apparently
doesn't have any IOAPICs.
But if there are no IOAPICs it doesn't seem to be an error that
none can be found. A solution that gets rid of this message is
to directly return if nr_ioapics (still) is zero. (But keep
returning -1 in that case, so nothing breaks from this change.)
The call chain that generates this error is:
pnpacpi_allocated_resource()
case ACPI_RESOURCE_TYPE_IRQ:
pnpacpi_parse_allocated_irqresource()
acpi_get_override_irq()
mp_find_ioapic()
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | 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 697dc34b7b87..ca9e2a3545a9 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -4002,6 +4002,9 @@ int mp_find_ioapic(u32 gsi) { int i = 0; + if (nr_ioapics == 0) + return -1; + /* Find the IOAPIC that manages this GSI. */ for (i = 0; i < nr_ioapics; i++) { if ((gsi >= mp_gsi_routing[i].gsi_base) |