Explorar el Código

[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>
Adrian Bunk hace 18 años
padre
commit
956fb53197
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      arch/i386/kernel/io_apic.c

+ 7 - 1
arch/i386/kernel/io_apic.c

@@ -2179,9 +2179,15 @@ static inline void unlock_ExtINT_logic(void)
 	unsigned char save_control, save_freq_select;
 	unsigned char save_control, save_freq_select;
 
 
 	pin  = find_isa_irq_pin(8, mp_INT);
 	pin  = find_isa_irq_pin(8, mp_INT);
+	if (pin == -1) {
+		WARN_ON_ONCE(1);
+		return;
+	}
 	apic = find_isa_irq_apic(8, mp_INT);
 	apic = find_isa_irq_apic(8, mp_INT);
-	if (pin == -1)
+	if (apic == -1) {
+		WARN_ON_ONCE(1);
 		return;
 		return;
+	}
 
 
 	entry0 = ioapic_read_entry(apic, pin);
 	entry0 = ioapic_read_entry(apic, pin);
 	clear_IO_APIC_pin(apic, pin);
 	clear_IO_APIC_pin(apic, pin);