mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
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:
commit
08d7676083
87 changed files with 539 additions and 1489 deletions
|
|
@ -114,7 +114,6 @@ config PPC
|
|||
select USE_GENERIC_SMP_HELPERS if SMP
|
||||
select HAVE_OPROFILE
|
||||
select HAVE_DEBUG_KMEMLEAK
|
||||
select HAVE_SYSCALL_WRAPPERS if PPC64
|
||||
select GENERIC_ATOMIC64 if PPC32
|
||||
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
||||
select HAVE_PERF_EVENTS
|
||||
|
|
|
|||
13
arch/powerpc/include/asm/linkage.h
Normal file
13
arch/powerpc/include/asm/linkage.h
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef _ASM_POWERPC_LINKAGE_H
|
||||
#define _ASM_POWERPC_LINKAGE_H
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#define cond_syscall(x) \
|
||||
asm ("\t.weak " #x "\n\t.set " #x ", sys_ni_syscall\n" \
|
||||
"\t.weak ." #x "\n\t.set ." #x ", .sys_ni_syscall\n")
|
||||
#define SYSCALL_ALIAS(alias, name) \
|
||||
asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
|
||||
"\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_POWERPC_LINKAGE_H */
|
||||
|
|
@ -190,7 +190,7 @@ SYSCALL_SPU(getcwd)
|
|||
SYSCALL_SPU(capget)
|
||||
SYSCALL_SPU(capset)
|
||||
COMPAT_SYS(sigaltstack)
|
||||
SYSX_SPU(sys_sendfile,compat_sys_sendfile_wrapper,sys_sendfile)
|
||||
COMPAT_SYS_SPU(sendfile)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(ni_syscall)
|
||||
PPC_SYS(vfork)
|
||||
|
|
@ -230,7 +230,7 @@ COMPAT_SYS_SPU(sched_setaffinity)
|
|||
COMPAT_SYS_SPU(sched_getaffinity)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSCALL(ni_syscall)
|
||||
SYSX(sys_ni_syscall,compat_sys_sendfile64_wrapper,sys_sendfile64)
|
||||
SYS32ONLY(sendfile64)
|
||||
COMPAT_SYS_SPU(io_setup)
|
||||
SYSCALL_SPU(io_destroy)
|
||||
COMPAT_SYS_SPU(io_getevents)
|
||||
|
|
@ -239,7 +239,7 @@ SYSCALL_SPU(io_cancel)
|
|||
SYSCALL(set_tid_address)
|
||||
SYSX_SPU(sys_fadvise64,ppc32_fadvise64,sys_fadvise64)
|
||||
SYSCALL(exit_group)
|
||||
SYSX(sys_lookup_dcookie,ppc32_lookup_dcookie,sys_lookup_dcookie)
|
||||
COMPAT_SYS(lookup_dcookie)
|
||||
SYSCALL_SPU(epoll_create)
|
||||
SYSCALL_SPU(epoll_ctl)
|
||||
SYSCALL_SPU(epoll_wait)
|
||||
|
|
@ -273,8 +273,8 @@ COMPAT_SYS(mq_timedreceive)
|
|||
COMPAT_SYS(mq_notify)
|
||||
COMPAT_SYS(mq_getsetattr)
|
||||
COMPAT_SYS(kexec_load)
|
||||
COMPAT_SYS(add_key)
|
||||
COMPAT_SYS(request_key)
|
||||
SYSCALL(add_key)
|
||||
SYSCALL(request_key)
|
||||
COMPAT_SYS(keyctl)
|
||||
COMPAT_SYS(waitid)
|
||||
SYSCALL(ioprio_set)
|
||||
|
|
|
|||
|
|
@ -56,11 +56,5 @@
|
|||
#define __ARCH_WANT_SYS_VFORK
|
||||
#define __ARCH_WANT_SYS_CLONE
|
||||
|
||||
/*
|
||||
* "Conditional" syscalls
|
||||
*/
|
||||
#define cond_syscall(x) \
|
||||
asmlinkage long x (void) __attribute__((weak,alias("sys_ni_syscall")))
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* _ASM_POWERPC_UNISTD_H_ */
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
#ifndef _ASM_POWERPC_LINKAGE_H
|
||||
#define _ASM_POWERPC_LINKAGE_H
|
||||
|
||||
/* Nothing to see here... */
|
||||
|
||||
#endif /* _ASM_POWERPC_LINKAGE_H */
|
||||
|
|
@ -61,91 +61,6 @@ asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp,
|
|||
return compat_sys_select((int)n, inp, outp, exp, compat_ptr(tvp_x));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYSVIPC
|
||||
long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr,
|
||||
u32 fifth)
|
||||
{
|
||||
int version;
|
||||
|
||||
version = call >> 16; /* hack for backward compatibility */
|
||||
call &= 0xffff;
|
||||
|
||||
switch (call) {
|
||||
|
||||
case SEMTIMEDOP:
|
||||
if (fifth)
|
||||
/* sign extend semid */
|
||||
return compat_sys_semtimedop((int)first,
|
||||
compat_ptr(ptr), second,
|
||||
compat_ptr(fifth));
|
||||
/* else fall through for normal semop() */
|
||||
case SEMOP:
|
||||
/* struct sembuf is the same on 32 and 64bit :)) */
|
||||
/* sign extend semid */
|
||||
return sys_semtimedop((int)first, compat_ptr(ptr), second,
|
||||
NULL);
|
||||
case SEMGET:
|
||||
/* sign extend key, nsems */
|
||||
return sys_semget((int)first, (int)second, third);
|
||||
case SEMCTL:
|
||||
/* sign extend semid, semnum */
|
||||
return compat_sys_semctl((int)first, (int)second, third,
|
||||
compat_ptr(ptr));
|
||||
|
||||
case MSGSND:
|
||||
/* sign extend msqid */
|
||||
return compat_sys_msgsnd((int)first, (int)second, third,
|
||||
compat_ptr(ptr));
|
||||
case MSGRCV:
|
||||
/* sign extend msqid, msgtyp */
|
||||
return compat_sys_msgrcv((int)first, second, (int)fifth,
|
||||
third, version, compat_ptr(ptr));
|
||||
case MSGGET:
|
||||
/* sign extend key */
|
||||
return sys_msgget((int)first, second);
|
||||
case MSGCTL:
|
||||
/* sign extend msqid */
|
||||
return compat_sys_msgctl((int)first, second, compat_ptr(ptr));
|
||||
|
||||
case SHMAT:
|
||||
/* sign extend shmid */
|
||||
return compat_sys_shmat((int)first, second, third, version,
|
||||
compat_ptr(ptr));
|
||||
case SHMDT:
|
||||
return sys_shmdt(compat_ptr(ptr));
|
||||
case SHMGET:
|
||||
/* sign extend key_t */
|
||||
return sys_shmget((int)first, second, third);
|
||||
case SHMCTL:
|
||||
/* sign extend shmid */
|
||||
return compat_sys_shmctl((int)first, second, compat_ptr(ptr));
|
||||
|
||||
default:
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 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 compat_sys_sendfile_wrapper(u32 out_fd, u32 in_fd,
|
||||
compat_off_t __user *offset, u32 count)
|
||||
{
|
||||
return compat_sys_sendfile((int)out_fd, (int)in_fd, offset, count);
|
||||
}
|
||||
|
||||
asmlinkage long compat_sys_sendfile64_wrapper(u32 out_fd, u32 in_fd,
|
||||
compat_loff_t __user *offset, u32 count)
|
||||
{
|
||||
return sys_sendfile((int)out_fd, (int)in_fd,
|
||||
(off_t __user *)offset, count);
|
||||
}
|
||||
|
||||
unsigned long compat_sys_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff)
|
||||
|
|
@ -195,13 +110,6 @@ asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long h
|
|||
return sys_ftruncate(fd, (high << 32) | low);
|
||||
}
|
||||
|
||||
long ppc32_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);
|
||||
}
|
||||
|
||||
long ppc32_fadvise64(int fd, u32 unused, u32 offset_high, u32 offset_low,
|
||||
size_t len, int advice)
|
||||
{
|
||||
|
|
@ -209,23 +117,6 @@ long ppc32_fadvise64(int fd, u32 unused, u32 offset_high, u32 offset_low,
|
|||
advice);
|
||||
}
|
||||
|
||||
asmlinkage long compat_sys_add_key(const char __user *_type,
|
||||
const char __user *_description,
|
||||
const void __user *_payload,
|
||||
u32 plen,
|
||||
u32 ringid)
|
||||
{
|
||||
return sys_add_key(_type, _description, _payload, plen, ringid);
|
||||
}
|
||||
|
||||
asmlinkage long compat_sys_request_key(const char __user *_type,
|
||||
const char __user *_description,
|
||||
const char __user *_callout_info,
|
||||
u32 destringid)
|
||||
{
|
||||
return sys_request_key(_type, _description, _callout_info, destringid);
|
||||
}
|
||||
|
||||
asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int flags,
|
||||
unsigned offset_hi, unsigned offset_lo,
|
||||
unsigned nbytes_hi, unsigned nbytes_lo)
|
||||
|
|
|
|||
Loading…
Reference in a new issue