[patch] i386: more ioapic checks

From: Chuck Ebbert
Date: Mon Dec 18 2006 - 02:19:08 EST


Coverity reports apic numbers are being passed to functions without
checking to see if they are legal.

(This is Kernel Bugzilla #6188.)

Signed-off-by: Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx>

--- 2.6.20-rc1-32.orig/arch/i386/kernel/io_apic.c
+++ 2.6.20-rc1-32/arch/i386/kernel/io_apic.c
@@ -2265,13 +2265,17 @@ static inline void __init check_timer(vo
clear_IO_APIC_pin(0, pin1);
return;
}
- clear_IO_APIC_pin(apic1, pin1);
+ if (apic1 == -1)
+ WARN_ON_ONCE(1);
+ else
+ clear_IO_APIC_pin(apic1, pin1);
+
printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to "
"IO-APIC\n");
}

printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... ");
- if (pin2 != -1) {
+ if (pin2 != -1 && apic2 != -1) {
printk("\n..... (found pin %d) ...", pin2);
/*
* legacy devices should be connected to IO APIC #0
--
MBTI: IXTP
-
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/