[LV] [PATCH] Interpret the syscall argument count as for CALLS
Maciej W. Rozycki
macro at linux-mips.org
Mon May 18 01:56:53 CEST 2009
The number of function arguments as pushed on the stack by the CALLS
instruction is defined by the architecture to be the least significant
byte of the longword pointed to by %AP after the call has been made.
Make the syscall argument count be interpreted the same way so that
trivial library syscall wrappers may simply execute CHMK reusing the
argument area of their callers with no need for the overhead to make a
local copy. This also provides for special handling of values outside the
defined <255:0> range.
Signed-off-by: Maciej W. Rozycki <macro at linux-mips.org>
---
Please apply.
Maciej
patch-mips-2.6.25-20080422-vax-scall-args-2
diff -up --recursive --new-file linux-mips-2.6.25-20080422.macro/arch/vax/kernel/syscall.c linux-mips-2.6.25-20080422/arch/vax/kernel/syscall.c
--- linux-mips-2.6.25-20080422.macro/arch/vax/kernel/syscall.c 2008-05-01 00:00:00.000000000 +0000
+++ linux-mips-2.6.25-20080422/arch/vax/kernel/syscall.c 2009-05-01 17:15:30.000000000 +0000
@@ -313,6 +313,7 @@ void syscall_handler(struct pt_regs *reg
regs->r0 = -EFAULT;
return;
}
+ nr_args &= 0xff;
/*
* The SP value in the pt_regs structure should really
@@ -323,7 +324,7 @@ void syscall_handler(struct pt_regs *reg
/*
* Kernel Mode Syscall Handling - no need to check access to arguments.
*/
- nr_args = *user_ap;
+ nr_args = *user_ap & 0xff;
}
#ifdef CONFIG_DEBUG_VAX_CHECK_CHMx_ARGS
_______________________________________________
Linux-Vax mailing list
Linux-Vax at mail.pergamentum.com
http://mail.pergamentum.com/mailman/listinfo/linux-vax
More information about the Vax-linux
mailing list