diff options
Diffstat (limited to 'arch/x86/ia32')
| -rw-r--r-- | arch/x86/ia32/Makefile | 3 | ||||
| -rw-r--r-- | arch/x86/ia32/ia32_aout.c | 31 | ||||
| -rw-r--r-- | arch/x86/ia32/ipc32.c | 54 | ||||
| -rw-r--r-- | arch/x86/ia32/sys_ia32.c | 37 | 
4 files changed, 6 insertions, 119 deletions
diff --git a/arch/x86/ia32/Makefile b/arch/x86/ia32/Makefile index 455646e0e53..e785b422b76 100644 --- a/arch/x86/ia32/Makefile +++ b/arch/x86/ia32/Makefile @@ -5,9 +5,6 @@  obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o  obj-$(CONFIG_IA32_EMULATION) += nosyscall.o syscall_ia32.o -sysv-$(CONFIG_SYSVIPC) := ipc32.o -obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) -  obj-$(CONFIG_IA32_AOUT) += ia32_aout.o  audit-class-$(CONFIG_AUDIT) := audit.o diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c index 03abf9b7001..805078e0801 100644 --- a/arch/x86/ia32/ia32_aout.c +++ b/arch/x86/ia32/ia32_aout.c @@ -162,7 +162,6 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,  	fs = get_fs();  	set_fs(KERNEL_DS);  	has_dumped = 1; -	current->flags |= PF_DUMPCORE;  	strncpy(dump.u_comm, current->comm, sizeof(current->comm));  	dump.u_ar0 = offsetof(struct user32, regs);  	dump.signal = signr; @@ -323,11 +322,8 @@ static int load_aout_binary(struct linux_binprm *bprm)  	if (N_MAGIC(ex) == OMAGIC) {  		unsigned long text_addr, map_size; -		loff_t pos;  		text_addr = N_TXTADDR(ex); - -		pos = 32;  		map_size = ex.a_text+ex.a_data;  		error = vm_brk(text_addr & PAGE_MASK, map_size); @@ -337,15 +333,12 @@ static int load_aout_binary(struct linux_binprm *bprm)  			return error;  		} -		error = bprm->file->f_op->read(bprm->file, -			 (char __user *)text_addr, -			  ex.a_text+ex.a_data, &pos); +		error = read_code(bprm->file, text_addr, 32, +				  ex.a_text + ex.a_data);  		if ((signed long)error < 0) {  			send_sig(SIGKILL, current, 0);  			return error;  		} - -		flush_icache_range(text_addr, text_addr+ex.a_text+ex.a_data);  	} else {  #ifdef WARN_OLD  		static unsigned long error_time, error_time2; @@ -367,15 +360,9 @@ static int load_aout_binary(struct linux_binprm *bprm)  #endif  		if (!bprm->file->f_op->mmap || (fd_offset & ~PAGE_MASK) != 0) { -			loff_t pos = fd_offset; -  			vm_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); -			bprm->file->f_op->read(bprm->file, -					(char __user *)N_TXTADDR(ex), -					ex.a_text+ex.a_data, &pos); -			flush_icache_range((unsigned long) N_TXTADDR(ex), -					   (unsigned long) N_TXTADDR(ex) + -					   ex.a_text+ex.a_data); +			read_code(bprm->file, N_TXTADDR(ex), fd_offset, +					ex.a_text+ex.a_data);  			goto beyond_if;  		} @@ -452,8 +439,6 @@ static int load_aout_library(struct file *file)  	start_addr =  ex.a_entry & 0xfffff000;  	if ((N_TXTOFF(ex) & ~PAGE_MASK) != 0) { -		loff_t pos = N_TXTOFF(ex); -  #ifdef WARN_OLD  		static unsigned long error_time;  		if (time_after(jiffies, error_time + 5*HZ)) { @@ -466,12 +451,8 @@ static int load_aout_library(struct file *file)  #endif  		vm_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); -		file->f_op->read(file, (char __user *)start_addr, -			ex.a_text + ex.a_data, &pos); -		flush_icache_range((unsigned long) start_addr, -				   (unsigned long) start_addr + ex.a_text + -				   ex.a_data); - +		read_code(file, start_addr, N_TXTOFF(ex), +			  ex.a_text + ex.a_data);  		retval = 0;  		goto out;  	} diff --git a/arch/x86/ia32/ipc32.c b/arch/x86/ia32/ipc32.c deleted file mode 100644 index 29cdcd02ead..00000000000 --- a/arch/x86/ia32/ipc32.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <linux/kernel.h> -#include <linux/spinlock.h> -#include <linux/list.h> -#include <linux/syscalls.h> -#include <linux/time.h> -#include <linux/sem.h> -#include <linux/msg.h> -#include <linux/shm.h> -#include <linux/ipc.h> -#include <linux/compat.h> -#include <asm/sys_ia32.h> - -asmlinkage long sys32_ipc(u32 call, int first, int second, int third, -			  compat_uptr_t ptr, u32 fifth) -{ -	int version; - -	version = call >> 16; /* hack for backward compatibility */ -	call &= 0xffff; - -	switch (call) { -	case SEMOP: -		/* struct sembuf is the same on 32 and 64bit :)) */ -		return sys_semtimedop(first, compat_ptr(ptr), second, NULL); -	case SEMTIMEDOP: -		return compat_sys_semtimedop(first, compat_ptr(ptr), second, -						compat_ptr(fifth)); -	case SEMGET: -		return sys_semget(first, second, third); -	case SEMCTL: -		return compat_sys_semctl(first, second, third, compat_ptr(ptr)); - -	case MSGSND: -		return compat_sys_msgsnd(first, second, third, compat_ptr(ptr)); -	case MSGRCV: -		return compat_sys_msgrcv(first, second, fifth, third, -					 version, compat_ptr(ptr)); -	case MSGGET: -		return sys_msgget((key_t) first, second); -	case MSGCTL: -		return compat_sys_msgctl(first, second, compat_ptr(ptr)); - -	case SHMAT: -		return compat_sys_shmat(first, second, third, version, -					compat_ptr(ptr)); -	case SHMDT: -		return sys_shmdt(compat_ptr(ptr)); -	case SHMGET: -		return sys_shmget(first, (unsigned)second, third); -	case SHMCTL: -		return compat_sys_shmctl(first, second, compat_ptr(ptr)); -	} -	return -ENOSYS; -} diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c index ad7a20cbc69..4e4907c67d9 100644 --- a/arch/x86/ia32/sys_ia32.c +++ b/arch/x86/ia32/sys_ia32.c @@ -166,12 +166,6 @@ asmlinkage long sys32_mmap(struct mmap_arg_struct32 __user *arg)  			       a.offset>>PAGE_SHIFT);  } -asmlinkage long sys32_mprotect(unsigned long start, size_t len, -			       unsigned long prot) -{ -	return sys_mprotect(start, len, prot); -} -  asmlinkage long sys32_waitpid(compat_pid_t pid, unsigned int __user *stat_addr,  			      int options)  { @@ -194,35 +188,10 @@ asmlinkage long sys32_pwrite(unsigned int fd, const char __user *ubuf,  } -asmlinkage long sys32_sendfile(int out_fd, int in_fd, -			       compat_off_t __user *offset, s32 count) -{ -	mm_segment_t old_fs = get_fs(); -	int ret; -	off_t of; - -	if (offset && get_user(of, offset)) -		return -EFAULT; - -	set_fs(KERNEL_DS); -	ret = sys_sendfile(out_fd, in_fd, offset ? (off_t __user *)&of : NULL, -			   count); -	set_fs(old_fs); - -	if (offset && put_user(of, offset)) -		return -EFAULT; -	return ret; -} -  /*   * Some system calls that need sign extended arguments. This could be   * done by a generic wrapper.   */ -long sys32_kill(int pid, int sig) -{ -	return sys_kill(pid, sig); -} -  long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,  			__u32 len_low, __u32 len_high, int advice)  { @@ -246,12 +215,6 @@ long sys32_vm86_warning(void)  	return -ENOSYS;  } -long sys32_lookup_dcookie(u32 addr_low, u32 addr_high, -			  char __user *buf, size_t len) -{ -	return sys_lookup_dcookie(((u64)addr_high << 32) | addr_low, buf, len); -} -  asmlinkage ssize_t sys32_readahead(int fd, unsigned off_lo, unsigned off_hi,  				   size_t count)  {  |