[PARISC] Fix bug when syscall nr is __NR_Linux_syscalls
authorKyle McMartin <kyle@parisc-linux.org>
Sun, 3 Jun 2007 21:47:00 +0000 (17:47 -0400)
committerKyle McMartin <kyle@minerva.i.cabal.ca>
Sun, 3 Jun 2007 21:53:45 +0000 (17:53 -0400)
The bug was that we were comparing __NR_syscalls to be greater or equal
to the syscall number stored in %r20. __NR_syscalls is one greater than
the last syscall though, so we're loading one entry beyond the end of the
syscall table, and trying to jump to it.

Fix this by only checking that we're greater, alternatively, we could
have compared to (__NR_Linux_syscalls - 1)

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/kernel/syscall.S

index 91b2a48b19211d79b2ce2c41956d9c7dfde02713..56f6231cb863e97ca9c74781ccaea83e1fc063aa 100644 (file)
@@ -198,7 +198,7 @@ linux_gateway_entry:
        ldil    L%sys_call_table, %r1
        ldo     R%sys_call_table(%r1), %r19
 #endif 
-       comiclr,>>=     __NR_Linux_syscalls, %r20, %r0
+       comiclr,>>      __NR_Linux_syscalls, %r20, %r0
        b,n     .Lsyscall_nosys
        
        LDREGX  %r20(%r19), %r19