Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
Pull compat cleanup from Al Viro: "Mostly about syscall wrappers this time; there will be another pile with patches in the same general area from various people, but I'd rather push those after both that and vfs.git pile are in." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: syscalls.h: slightly reduce the jungles of macros get rid of union semop in sys_semctl(2) arguments make do_mremap() static sparc: no need to sign-extend in sync_file_range() wrapper ppc compat wrappers for add_key(2) and request_key(2) are pointless x86: trim sys_ia32.h x86: sys32_kill and sys32_mprotect are pointless get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC merge compat sys_ipc instances consolidate compat lookup_dcookie() convert vmsplice to COMPAT_SYSCALL_DEFINE switch getrusage() to COMPAT_SYSCALL_DEFINE switch epoll_pwait to COMPAT_SYSCALL_DEFINE convert sendfile{,64} to COMPAT_SYSCALL_DEFINE switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE make SYSCALL_DEFINE<n>-generated wrappers do asmlinkage_protect make HAVE_SYSCALL_WRAPPERS unconditional consolidate cond_syscall and SYSCALL_ALIAS declarations teach SYSCALL_DEFINE<n> how to deal with long long/unsigned long long get rid of duplicate logics in __SC_....[1-6] definitions
This commit is contained in:
@@ -60,47 +60,6 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
/* Note: it is necessary to treat out_fd and in_fd as unsigned ints, with the
|
||||
* corresponding cast to a signed int to insure that the proper conversion
|
||||
* (sign extension) between the register representation of a signed int (msr in
|
||||
* 32-bit mode) and the register representation of a signed int (msr in 64-bit
|
||||
* mode) is performed.
|
||||
*/
|
||||
asmlinkage long sys32_sendfile(u32 out_fd, u32 in_fd,
|
||||
compat_off_t __user *offset, compat_size_t count)
|
||||
{
|
||||
return compat_sys_sendfile((int)out_fd, (int)in_fd, offset, count);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_sendfile64(u32 out_fd, u32 in_fd,
|
||||
compat_loff_t __user *offset, compat_size_t count)
|
||||
{
|
||||
return sys_sendfile64((int)out_fd, (int)in_fd,
|
||||
(loff_t __user *)offset, count);
|
||||
}
|
||||
|
||||
asmlinkage long sys32_semctl(int semid, int semnum, int cmd, union semun arg)
|
||||
{
|
||||
union semun u;
|
||||
|
||||
if (cmd == SETVAL) {
|
||||
/* Ugh. arg is a union of int,ptr,ptr,ptr, so is 8 bytes.
|
||||
* The int should be in the first 4, but our argument
|
||||
* frobbing has left it in the last 4.
|
||||
*/
|
||||
u.val = *((int *)&arg + 1);
|
||||
return sys_semctl (semid, semnum, cmd, u);
|
||||
}
|
||||
return sys_semctl (semid, semnum, cmd, arg);
|
||||
}
|
||||
|
||||
long sys32_lookup_dcookie(u32 cookie_high, u32 cookie_low, char __user *buf,
|
||||
size_t len)
|
||||
{
|
||||
return sys_lookup_dcookie((u64)cookie_high << 32 | cookie_low,
|
||||
buf, len);
|
||||
}
|
||||
|
||||
asmlinkage long compat_sys_fanotify_mark(int fan_fd, int flags, u32 mask_hi,
|
||||
u32 mask_lo, int fd,
|
||||
const char __user *pathname)
|
||||
|
@@ -198,7 +198,7 @@
|
||||
ENTRY_SAME(madvise)
|
||||
ENTRY_SAME(clone_wrapper) /* 120 */
|
||||
ENTRY_SAME(setdomainname)
|
||||
ENTRY_DIFF(sendfile)
|
||||
ENTRY_COMP(sendfile)
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(recvfrom)
|
||||
/* struct timex contains longs */
|
||||
@@ -282,7 +282,7 @@
|
||||
ENTRY_COMP(recvmsg)
|
||||
ENTRY_SAME(semop) /* 185 */
|
||||
ENTRY_SAME(semget)
|
||||
ENTRY_DIFF(semctl)
|
||||
ENTRY_COMP(semctl)
|
||||
ENTRY_COMP(msgsnd)
|
||||
ENTRY_COMP(msgrcv)
|
||||
ENTRY_SAME(msgget) /* 190 */
|
||||
@@ -304,7 +304,7 @@
|
||||
ENTRY_SAME(gettid)
|
||||
ENTRY_OURS(readahead)
|
||||
ENTRY_SAME(tkill)
|
||||
ENTRY_DIFF(sendfile64)
|
||||
ENTRY_COMP(sendfile64)
|
||||
ENTRY_COMP(futex) /* 210 */
|
||||
ENTRY_COMP(sched_setaffinity)
|
||||
ENTRY_COMP(sched_getaffinity)
|
||||
@@ -318,7 +318,7 @@
|
||||
ENTRY_SAME(alloc_hugepages) /* 220 */
|
||||
ENTRY_SAME(free_hugepages)
|
||||
ENTRY_SAME(exit_group)
|
||||
ENTRY_DIFF(lookup_dcookie)
|
||||
ENTRY_COMP(lookup_dcookie)
|
||||
ENTRY_SAME(epoll_create)
|
||||
ENTRY_SAME(epoll_ctl) /* 225 */
|
||||
ENTRY_SAME(epoll_wait)
|
||||
|
Reference in New Issue
Block a user