x86: use regparm(3) for passed-in pt_regs pointer
authorBrian Gerst <brgerst@gmail.com>
Wed, 11 Feb 2009 21:43:58 +0000 (16:43 -0500)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 11 Feb 2009 22:00:56 +0000 (14:00 -0800)
commitb12bdaf11f935d7be030207e3c77faeaeab8ded3
treee41f325f01614f7cf2eb78350fbd7440afe39cf8
parent1c0040047d5499599cc231ca3f105be3ceff8562
x86: use regparm(3) for passed-in pt_regs pointer

Some syscalls need to access the pt_regs structure, either to copy
user register state or to modifiy it.  This patch adds stubs to load
the address of the pt_regs struct into the %eax register, and changes
the syscalls to take the pointer as an argument instead of relying on
the assumption that the pt_regs structure overlaps the function
arguments.

Drop the use of regparm(1) due to concern about gcc bugs, and to move
in the direction of the eventual removal of regparm(0) for asmlinkage.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/linkage.h
arch/x86/include/asm/syscalls.h
arch/x86/kernel/ioport.c
arch/x86/kernel/process_32.c
arch/x86/kernel/signal.c
arch/x86/kernel/vm86_32.c