This part is basically untangling various compat stuff. Compat syscalls moved to their native counterparts, getting rid of quite a bit of double-copying and/or set_fs() uses. A lot of field-by-field copyin/copyout killed off. * kernel/compat.c is much closer to containing just the copyin/copyout of compat structs. Not all compat syscalls are gone from it yet, but it's getting there. * ipc/compat_mq.c killed off completely. * block/compat_ioctl.c cleaned up; floppy compat ioctls moved to drivers/block/floppy.c where they belong. Yes, there are several drivers that implement some of the same ioctls. Some are m68k and one is 32bit-only pmac. drivers/block/floppy.c is the only one in that bunch that can be built on biarch. It might've been better off split into smaller chunks, but there's already way too many branches as it is ;-/ A trivial conflict in kernel/compat.c - two piles of stuff removed from it in two branches, next to each other. The following changes since commit 2ea659a9ef488125eb46da6eb571de5eae5c43f6: Linux 4.12-rc1 (2017-05-13 13:19:49 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git misc.compat for you to fetch changes up to 0d0606060baefdb13d3d80dba1b4c816b0676e16: mqueue: move compat syscalls to native ones (2017-07-04 13:13:49 -0400) ---------------------------------------------------------------- Al Viro (17): trim __ARCH_WANT_SYS_OLD_GETRLIMIT take compat_sys_old_getrlimit() to native syscall do_sigaltstack(): lift copying to/from userland into callers fb_get_fscreeninfo(): don't bother with do_fb_ioctl() compat_{get,put}_bitmap(): use unsafe_{get,put}_user() times(2): move compat to native getrlimit()/setrlimit(): move compat to native sigpending(): move compat to native put_compat_rusage(): switch to copy_to_user() select: switch compat_{get,put}_fd_set() to compat_{get,put}_bitmap() rt_sigtimedwait(): move compat to native ipmi: get COMPAT_IPMICTL_RECEIVE_MSG in sync with the native one ipmi: get rid of field-by-field __get_user() take floppy compat ioctls to sodding floppy.c compat_hdio_ioctl: get rid of set_fs() usbdevfs: get rid of field-by-field copyin mqueue: move compat syscalls to native ones arch/alpha/include/asm/unistd.h | 1 - arch/m32r/include/asm/unistd.h | 1 - arch/mips/include/asm/unistd.h | 1 - arch/parisc/include/asm/unistd.h | 1 - arch/powerpc/include/asm/compat.h | 1 - arch/s390/include/asm/compat.h | 1 - arch/x86/include/asm/compat.h | 1 - block/compat_ioctl.c | 355 +------------------------------------- drivers/block/floppy.c | 328 +++++++++++++++++++++++++++++++++++ drivers/char/ipmi/ipmi_devintf.c | 333 ++++++++++++++++------------------- drivers/usb/core/devio.c | 48 ++---- drivers/video/fbdev/core/fbmem.c | 19 +- fs/select.c | 44 +---- include/linux/compat.h | 3 +- include/linux/signal.h | 2 - include/linux/syscalls.h | 2 +- include/linux/time.h | 3 - ipc/Makefile | 3 +- ipc/compat_mq.c | 138 --------------- ipc/mqueue.c | 349 +++++++++++++++++++++++++++---------- kernel/compat.c | 267 ++++++---------------------- kernel/signal.c | 155 ++++++++++------- kernel/sys.c | 100 ++++++++++- 23 files changed, 1019 insertions(+), 1137 deletions(-) delete mode 100644 ipc/compat_mq.c