2006-12-18 07:15:58

by Chuck Ebbert

[permalink] [raw]
Subject: [patch] i386: more ioapic checks

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 <[email protected]>

--- 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