aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/syscall.S
diff options
context:
space:
mode:
authorKyle McMartin <kyle@parisc-linux.org>2007-06-03 17:47:00 -0400
committerKyle McMartin <kyle@minerva.i.cabal.ca>2007-06-03 17:53:45 -0400
commit3bb457af4fa86dceef57d7c3e959aff162457fdc (patch)
tree4b2278b2da6a4518a7db8d277dcd04bdc54b7b9a /arch/parisc/kernel/syscall.S
parentcc650a7a9f5ebc3f9290a8e20e3f55b4f52f849e (diff)
[PARISC] Fix bug when syscall nr is __NR_Linux_syscalls
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>
Diffstat (limited to 'arch/parisc/kernel/syscall.S')
-rw-r--r--arch/parisc/kernel/syscall.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index 91b2a48b1921..56f6231cb863 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -198,7 +198,7 @@ linux_gateway_entry:
198 ldil L%sys_call_table, %r1 198 ldil L%sys_call_table, %r1
199 ldo R%sys_call_table(%r1), %r19 199 ldo R%sys_call_table(%r1), %r19
200#endif 200#endif
201 comiclr,>>= __NR_Linux_syscalls, %r20, %r0 201 comiclr,>> __NR_Linux_syscalls, %r20, %r0
202 b,n .Lsyscall_nosys 202 b,n .Lsyscall_nosys
203 203
204 LDREGX %r20(%r19), %r19 204 LDREGX %r20(%r19), %r19