x86: get rid of pt_regs argument of iopl(2)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
					parent
					
						
							
								ea93a6e2e7
							
						
					
				
			
			
				commit
				
					
						b3af11afe0
					
				
			
		
					 7 changed files with 17 additions and 24 deletions
				
			
		|  | @ -467,7 +467,6 @@ GLOBAL(\label) | |||
| 	PTREGSCALL stub32_execve, compat_sys_execve, %rcx | ||||
| 	PTREGSCALL stub32_fork, sys_fork, %rdi | ||||
| 	PTREGSCALL stub32_vfork, sys_vfork, %rdi | ||||
| 	PTREGSCALL stub32_iopl, sys_iopl, %rsi | ||||
| 
 | ||||
| 	ALIGN | ||||
| GLOBAL(stub32_clone) | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| /* Common in X86_32 and X86_64 */ | ||||
| /* kernel/ioport.c */ | ||||
| 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 */ | ||||
| asmlinkage int sys_modify_ldt(int, void __user *, unsigned long); | ||||
|  |  | |||
|  | @ -738,7 +738,6 @@ ENTRY(ptregs_##name) ; \ | |||
| 	CFI_ENDPROC; \
 | ||||
| ENDPROC(ptregs_##name) | ||||
| 
 | ||||
| PTREGSCALL1(iopl) | ||||
| PTREGSCALL0(sigreturn) | ||||
| PTREGSCALL0(rt_sigreturn) | ||||
| PTREGSCALL2(vm86) | ||||
|  |  | |||
|  | @ -828,23 +828,6 @@ int_restore_rest: | |||
| 	CFI_ENDPROC | ||||
| 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 | ||||
| ENTRY(stub_\func) | ||||
| 	CFI_STARTPROC | ||||
|  | @ -861,10 +844,22 @@ ENTRY(stub_\func) | |||
| END(stub_\func) | ||||
| 	.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  fork | ||||
| 	FORK_LIKE  vfork | ||||
| 	PTREGSCALL stub_iopl, sys_iopl, %rsi | ||||
| 	FIXED_FRAME stub_iopl, sys_iopl | ||||
| 
 | ||||
| ENTRY(ptregscall_common) | ||||
| 	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) | |||
|  * on system-call entry - see also fork() and the signal handling | ||||
|  * 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; | ||||
| 	struct thread_struct *t = ¤t->thread; | ||||
| 
 | ||||
|  |  | |||
|  | @ -116,7 +116,7 @@ | |||
| 107	i386	lstat			sys_newlstat			compat_sys_newlstat | ||||
| 108	i386	fstat			sys_newfstat			compat_sys_newfstat | ||||
| 109	i386	olduname		sys_uname | ||||
| 110	i386	iopl			ptregs_iopl			stub32_iopl | ||||
| 110	i386	iopl			sys_iopl | ||||
| 111	i386	vhangup			sys_vhangup | ||||
| 112	i386	idle | ||||
| 113	i386	vm86old			ptregs_vm86old			sys32_vm86_warning | ||||
|  |  | |||
|  | @ -24,7 +24,6 @@ | |||
| 
 | ||||
| #define old_mmap sys_old_mmap | ||||
| 
 | ||||
| #define ptregs_iopl sys_iopl | ||||
| #define ptregs_vm86old sys_vm86old | ||||
| #define ptregs_vm86 sys_vm86 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Al Viro
				Al Viro