[PATCH] powerpc: check Cell SPU syscall number range _before_ using it
authorDavid Woodhouse <dwmw2@infradead.org>
Tue, 23 May 2006 14:46:39 +0000 (07:46 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 23 May 2006 17:35:32 +0000 (10:35 -0700)
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/powerpc/platforms/cell/spu_callbacks.c

index 67453147cd990294ccc1671b9df390eefb616054..5a0f9e3beb24677b3de2e604127ac22fb656c72c 100644 (file)
@@ -339,13 +339,13 @@ long spu_sys_callback(struct spu_syscall_block *s)
 {
        long (*syscall)(u64 a1, u64 a2, u64 a3, u64 a4, u64 a5, u64 a6);
 
-       syscall = spu_syscall_table[s->nr_ret];
-
        if (s->nr_ret >= ARRAY_SIZE(spu_syscall_table)) {
                pr_debug("%s: invalid syscall #%ld", __FUNCTION__, s->nr_ret);
                return -ENOSYS;
        }
 
+       syscall = spu_syscall_table[s->nr_ret];
+
 #ifdef DEBUG
        print_symbol(KERN_DEBUG "SPU-syscall %s:", (unsigned long)syscall);
        printk("syscall%ld(%lx, %lx, %lx, %lx, %lx, %lx)\n",