Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76b021d0 authored by Al Viro's avatar Al Viro
Browse files

convert vmsplice to COMPAT_SYSCALL_DEFINE



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8d2d5c4a
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -1252,13 +1252,6 @@ ENTRY(sys_tee_wrapper)
	llgfr	%r5,%r5			# unsigned int
	jg	sys_tee

ENTRY(compat_sys_vmsplice_wrapper)
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# compat_iovec *
	llgfr	%r4,%r4			# unsigned int
	llgfr	%r5,%r5			# unsigned int
	jg	compat_sys_vmsplice

ENTRY(sys_getcpu_wrapper)
	llgtr	%r2,%r2			# unsigned *
	llgtr	%r3,%r3			# unsigned *
+1 −1
Original line number Diff line number Diff line
@@ -317,7 +317,7 @@ SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list)
SYSCALL(sys_splice,sys_splice,sys_splice_wrapper)
SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper)
SYSCALL(sys_tee,sys_tee,sys_tee_wrapper)
SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper)
SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice)
NI_SYSCALL							/* 310 sys_move_pages */
SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait)
+0 −1
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ SIGN1(sys32_recvfrom, compat_sys_recvfrom, %o0)
SIGN1(sys32_recvmsg, compat_sys_recvmsg, %o0)
SIGN1(sys32_sendmsg, compat_sys_sendmsg, %o0)
SIGN2(sys32_sync_file_range, compat_sync_file_range, %o0, %o5)
SIGN1(sys32_vmsplice, compat_sys_vmsplice, %o0)

	.globl		sys32_mmap2
sys32_mmap2:
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ sys_call_table32:
/*10*/  .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod
/*15*/	.word sys_chmod, sys_lchown16, sys_brk, sys_nis_syscall, compat_sys_lseek
/*20*/	.word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
/*25*/	.word sys32_vmsplice, compat_sys_ptrace, sys_alarm, compat_sys_sigaltstack, sys_pause
/*25*/	.word compat_sys_vmsplice, compat_sys_ptrace, sys_alarm, compat_sys_sigaltstack, sys_pause
/*30*/	.word compat_sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
	.word sys_chown, sys_sync, sys_kill, compat_sys_newstat, compat_sys_sendfile
/*40*/	.word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid
+0 −20
Original line number Diff line number Diff line
@@ -1253,26 +1253,6 @@ compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
	return compat_sys_pwritev64(fd, vec, vlen, pos);
}

asmlinkage long
compat_sys_vmsplice(int fd, const struct compat_iovec __user *iov32,
		    unsigned int nr_segs, unsigned int flags)
{
	unsigned i;
	struct iovec __user *iov;
	if (nr_segs > UIO_MAXIOV)
		return -EINVAL;
	iov = compat_alloc_user_space(nr_segs * sizeof(struct iovec));
	for (i = 0; i < nr_segs; i++) {
		struct compat_iovec v;
		if (get_user(v.iov_base, &iov32[i].iov_base) ||
		    get_user(v.iov_len, &iov32[i].iov_len) ||
		    put_user(compat_ptr(v.iov_base), &iov[i].iov_base) ||
		    put_user(v.iov_len, &iov[i].iov_len))
			return -EFAULT;
	}
	return sys_vmsplice(fd, iov, nr_segs, flags);
}

/*
 * Exactly like fs/open.c:sys_open(), except that it doesn't set the
 * O_LARGEFILE flag.
Loading