diff options
author | David S. Miller | 2006-12-01 02:11:26 +0100 |
---|---|---|
committer | David S. Miller | 2006-12-10 11:40:10 +0100 |
commit | d4accd60d23f3c8a576fd08b727f88096f42d445 (patch) | |
tree | a1d490ef2eebbdedf3703f4ae0829bf85d8efbfe /arch/sparc | |
parent | [SPARC]: Replace kmalloc+memset with kzalloc (diff) | |
download | kernel-qcow2-linux-d4accd60d23f3c8a576fd08b727f88096f42d445.tar.gz kernel-qcow2-linux-d4accd60d23f3c8a576fd08b727f88096f42d445.tar.xz kernel-qcow2-linux-d4accd60d23f3c8a576fd08b727f88096f42d445.zip |
[SPARC]: Check kzalloc() return value in SUN4D irq/iommu init.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/sun4d_irq.c | 4 | ||||
-rw-r--r-- | arch/sparc/mm/io-unit.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c index b8bd53ab29c5..cf1b8baa57ea 100644 --- a/arch/sparc/kernel/sun4d_irq.c +++ b/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; diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c index 007062022967..4ccda77d08d6 100644 --- a/arch/sparc/mm/io-unit.c +++ b/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; |