Pārlūkot izejas kodu

[SPARC]: Check kzalloc() return value in SUN4D irq/iommu init.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 18 gadi atpakaļ
vecāks
revīzija
d4accd60d2
2 mainītis faili ar 9 papildinājumiem un 0 dzēšanām
  1. 4 0
      arch/sparc/kernel/sun4d_irq.c
  2. 5 0
      arch/sparc/mm/io-unit.c

+ 4 - 0
arch/sparc/kernel/sun4d_irq.c

@@ -546,6 +546,10 @@ void __init sun4d_init_sbi_irq(void)
 	for_each_sbus(sbus)
 		nsbi++;
 	sbus_actions = kzalloc (nsbi * 8 * 4 * sizeof(struct sbus_action), GFP_ATOMIC);
+	if (!sbus_actions) {
+		prom_printf("SUN4D: Cannot allocate sbus_actions, halting.\n");
+		prom_halt();
+	}
 	for_each_sbus(sbus) {
 #ifdef CONFIG_SMP	
 		extern unsigned char boot_cpu_id;

+ 5 - 0
arch/sparc/mm/io-unit.c

@@ -22,6 +22,7 @@
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 #include <asm/dma.h>
+#include <asm/oplib.h>
 
 /* #define IOUNIT_DEBUG */
 #ifdef IOUNIT_DEBUG
@@ -42,6 +43,10 @@ iounit_init(int sbi_node, int io_node, struct sbus_bus *sbus)
 	struct resource r;
 
 	iounit = kzalloc(sizeof(struct iounit_struct), GFP_ATOMIC);
+	if (!iounit) {
+		prom_printf("SUN4D: Cannot alloc iounit, halting.\n");
+		prom_halt();
+	}
 
 	iounit->limit[0] = IOUNIT_BMAP1_START;
 	iounit->limit[1] = IOUNIT_BMAP2_START;