summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaul Bolle <pebolle@tiscali.nl>2011-02-14 22:52:38 +0100
committerIngo Molnar <mingo@elte.hu>2011-02-15 04:15:04 +0100
commit678301ecadec24ff77ab310eebf8a32ccddb1850 (patch)
treee98478769e2abc960623d5c044a1440e71411653 /arch
parent1c9d16e35911090dee3f9313e6af13af623d66ee (diff)
downloadlinux-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>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/apic/io_apic.c3
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)