mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x32 support for x86-64 from Ingo Molnar:
"This tree introduces the X32 binary format and execution mode for x86:
32-bit data space binaries using 64-bit instructions and 64-bit kernel
syscalls.
This allows applications whose working set fits into a 32 bits address
space to make use of 64-bit instructions while using a 32-bit address
space with shorter pointers, more compressed data structures, etc."
Fix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}
* 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
x32: Fix alignment fail in struct compat_siginfo
x32: Fix stupid ia32/x32 inversion in the siginfo format
x32: Add ptrace for x32
x32: Switch to a 64-bit clock_t
x32: Provide separate is_ia32_task() and is_x32_task() predicates
x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls
x86/x32: Fix the binutils auto-detect
x32: Warn and disable rather than error if binutils too old
x32: Only clear TIF_X32 flag once
x32: Make sure TS_COMPAT is cleared for x32 tasks
fs: Remove missed ->fds_bits from cessation use of fd_set structs internally
fs: Fix close_on_exec pointer in alloc_fdtable
x32: Drop non-__vdso weak symbols from the x32 VDSO
x32: Fix coding style violations in the x32 VDSO code
x32: Add x32 VDSO support
x32: Allow x32 to be configured
x32: If configured, add x32 system calls to system call tables
x32: Handle process creation
x32: Signal-related system calls
x86: Add #ifdef CONFIG_COMPAT to <asm/sys_ia32.h>
...
This commit is contained in:
commit
a591afc01d
91 changed files with 1561 additions and 2180 deletions
26
fs/compat.c
26
fs/compat.c
|
|
@ -1170,10 +1170,9 @@ compat_sys_readv(unsigned long fd, const struct compat_iovec __user *vec,
|
|||
}
|
||||
|
||||
asmlinkage ssize_t
|
||||
compat_sys_preadv(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, u32 pos_low, u32 pos_high)
|
||||
compat_sys_preadv64(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos)
|
||||
{
|
||||
loff_t pos = ((loff_t)pos_high << 32) | pos_low;
|
||||
struct file *file;
|
||||
int fput_needed;
|
||||
ssize_t ret;
|
||||
|
|
@ -1190,6 +1189,14 @@ compat_sys_preadv(unsigned long fd, const struct compat_iovec __user *vec,
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage ssize_t
|
||||
compat_sys_preadv(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, u32 pos_low, u32 pos_high)
|
||||
{
|
||||
loff_t pos = ((loff_t)pos_high << 32) | pos_low;
|
||||
return compat_sys_preadv64(fd, vec, vlen, pos);
|
||||
}
|
||||
|
||||
static size_t compat_writev(struct file *file,
|
||||
const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, loff_t *pos)
|
||||
|
|
@ -1229,10 +1236,9 @@ compat_sys_writev(unsigned long fd, const struct compat_iovec __user *vec,
|
|||
}
|
||||
|
||||
asmlinkage ssize_t
|
||||
compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, u32 pos_low, u32 pos_high)
|
||||
compat_sys_pwritev64(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos)
|
||||
{
|
||||
loff_t pos = ((loff_t)pos_high << 32) | pos_low;
|
||||
struct file *file;
|
||||
int fput_needed;
|
||||
ssize_t ret;
|
||||
|
|
@ -1249,6 +1255,14 @@ compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage ssize_t
|
||||
compat_sys_pwritev(unsigned long fd, const struct compat_iovec __user *vec,
|
||||
unsigned long vlen, u32 pos_low, u32 pos_high)
|
||||
{
|
||||
loff_t pos = ((loff_t)pos_high << 32) | pos_low;
|
||||
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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue