Commit b3af11af authored by Al Viro's avatar Al Viro

x86: get rid of pt_regs argument of iopl(2)

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ea93a6e2
...@@ -467,7 +467,6 @@ GLOBAL(\label) ...@@ -467,7 +467,6 @@ GLOBAL(\label)
PTREGSCALL stub32_execve, compat_sys_execve, %rcx PTREGSCALL stub32_execve, compat_sys_execve, %rcx
PTREGSCALL stub32_fork, sys_fork, %rdi PTREGSCALL stub32_fork, sys_fork, %rdi
PTREGSCALL stub32_vfork, sys_vfork, %rdi PTREGSCALL stub32_vfork, sys_vfork, %rdi
PTREGSCALL stub32_iopl, sys_iopl, %rsi
ALIGN ALIGN
GLOBAL(stub32_clone) GLOBAL(stub32_clone)
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
/* Common in X86_32 and X86_64 */ /* Common in X86_32 and X86_64 */
/* kernel/ioport.c */ /* kernel/ioport.c */
asmlinkage long sys_ioperm(unsigned long, unsigned long, int); asmlinkage long sys_ioperm(unsigned long, unsigned long, int);
long sys_iopl(unsigned int, struct pt_regs *); asmlinkage long sys_iopl(unsigned int);
/* kernel/ldt.c */ /* kernel/ldt.c */
asmlinkage int sys_modify_ldt(int, void __user *, unsigned long); asmlinkage int sys_modify_ldt(int, void __user *, unsigned long);
......
...@@ -738,7 +738,6 @@ ENTRY(ptregs_##name) ; \ ...@@ -738,7 +738,6 @@ ENTRY(ptregs_##name) ; \
CFI_ENDPROC; \ CFI_ENDPROC; \
ENDPROC(ptregs_##name) ENDPROC(ptregs_##name)
PTREGSCALL1(iopl)
PTREGSCALL0(sigreturn) PTREGSCALL0(sigreturn)
PTREGSCALL0(rt_sigreturn) PTREGSCALL0(rt_sigreturn)
PTREGSCALL2(vm86) PTREGSCALL2(vm86)
......
...@@ -828,23 +828,6 @@ int_restore_rest: ...@@ -828,23 +828,6 @@ int_restore_rest:
CFI_ENDPROC CFI_ENDPROC
END(system_call) END(system_call)
/*
* Certain special system calls that need to save a complete full stack frame.
*/
.macro PTREGSCALL label,func,arg
ENTRY(\label)
PARTIAL_FRAME 1 8 /* offset 8: return address */
subq $REST_SKIP, %rsp
CFI_ADJUST_CFA_OFFSET REST_SKIP
call save_rest
DEFAULT_FRAME 0 8 /* offset 8: return address */
leaq 8(%rsp), \arg /* pt_regs pointer */
call \func
jmp ptregscall_common
CFI_ENDPROC
END(\label)
.endm
.macro FORK_LIKE func .macro FORK_LIKE func
ENTRY(stub_\func) ENTRY(stub_\func)
CFI_STARTPROC CFI_STARTPROC
...@@ -861,10 +844,22 @@ ENTRY(stub_\func) ...@@ -861,10 +844,22 @@ ENTRY(stub_\func)
END(stub_\func) END(stub_\func)
.endm .endm
.macro FIXED_FRAME label,func
ENTRY(\label)
CFI_STARTPROC
PARTIAL_FRAME 0 8 /* offset 8: return address */
FIXUP_TOP_OF_STACK %r11, 8-ARGOFFSET
call \func
RESTORE_TOP_OF_STACK %r11, 8-ARGOFFSET
ret
CFI_ENDPROC
END(\label)
.endm
FORK_LIKE clone FORK_LIKE clone
FORK_LIKE fork FORK_LIKE fork
FORK_LIKE vfork FORK_LIKE vfork
PTREGSCALL stub_iopl, sys_iopl, %rsi FIXED_FRAME stub_iopl, sys_iopl
ENTRY(ptregscall_common) ENTRY(ptregscall_common)
DEFAULT_FRAME 1 8 /* offset 8: return address */ DEFAULT_FRAME 1 8 /* offset 8: return address */
......
...@@ -93,8 +93,9 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) ...@@ -93,8 +93,9 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
* on system-call entry - see also fork() and the signal handling * on system-call entry - see also fork() and the signal handling
* code. * code.
*/ */
long sys_iopl(unsigned int level, struct pt_regs *regs) SYSCALL_DEFINE1(iopl, unsigned int, level)
{ {
struct pt_regs *regs = current_pt_regs();
unsigned int old = (regs->flags >> 12) & 3; unsigned int old = (regs->flags >> 12) & 3;
struct thread_struct *t = &current->thread; struct thread_struct *t = &current->thread;
......
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
107 i386 lstat sys_newlstat compat_sys_newlstat 107 i386 lstat sys_newlstat compat_sys_newlstat
108 i386 fstat sys_newfstat compat_sys_newfstat 108 i386 fstat sys_newfstat compat_sys_newfstat
109 i386 olduname sys_uname 109 i386 olduname sys_uname
110 i386 iopl ptregs_iopl stub32_iopl 110 i386 iopl sys_iopl
111 i386 vhangup sys_vhangup 111 i386 vhangup sys_vhangup
112 i386 idle 112 i386 idle
113 i386 vm86old ptregs_vm86old sys32_vm86_warning 113 i386 vm86old ptregs_vm86old sys32_vm86_warning
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#define old_mmap sys_old_mmap #define old_mmap sys_old_mmap
#define ptregs_iopl sys_iopl
#define ptregs_vm86old sys_vm86old #define ptregs_vm86old sys_vm86old
#define ptregs_vm86 sys_vm86 #define ptregs_vm86 sys_vm86
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment