diff options
author | Adrian Bunk <bunk@stusta.de> | 2006-12-07 02:14:11 +0100 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-07 02:14:11 +0100 |
commit | 956fb53197f82257974f1f9835485aeeef4510b3 (patch) | |
tree | cd52c05cfa4b11234eb307b6b1999cef3a25f138 /arch/i386 | |
parent | e1cccf48b182dd743c3c83a4fdf8dc570a43b393 (diff) | |
download | blackbird-op-linux-956fb53197f82257974f1f9835485aeeef4510b3.tar.gz blackbird-op-linux-956fb53197f82257974f1f9835485aeeef4510b3.zip |
[PATCH] i386: handle a negative return value
The Coverity checker noted that bad things might happen if
find_isa_irq_apic() returned -1.
[akpm@osdl.org: add debugging checks]
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Acked-by: Ingo Molnar <mingo@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/io_apic.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 993150f206ed..7bfd6c3ec87d 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c @@ -2179,9 +2179,15 @@ static inline void unlock_ExtINT_logic(void) unsigned char save_control, save_freq_select; pin = find_isa_irq_pin(8, mp_INT); + if (pin == -1) { + WARN_ON_ONCE(1); + return; + } apic = find_isa_irq_apic(8, mp_INT); - if (pin == -1) + if (apic == -1) { + WARN_ON_ONCE(1); return; + } entry0 = ioapic_read_entry(apic, pin); clear_IO_APIC_pin(apic, pin); |