[git pull] vfs.git pile 6

From: Al Viro
Date: Thu Jul 06 2017 - 05:11:12 EST


[6 more piles tonight with several more left for tomorrow]

DRM compat ioctl handling. Kills double-copies in there and
tons of field-by-field copyin/copyout. Several dead ioctls put to
rest, while we are at it - the native counterparts had been gone for
a decade, so we can bloody well fail early on the compat side. No
point rearranging the 32bit structure into 64bit one (and back) only
to be told "piss off, I don't know that ioctl" by the native code...

There's a trivial fixup patch tagged on the end of that branch;
I could fold it back, but one of the affected commits is early in the
queue and fixup does not affect gcc at all - it's dealing with sparse
misannotations only, so it's not a bisect hazard and I decided to leave
it at the branch tip.

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 work.drm

for you to fetch changes up to b87b786b1fa1aa1bba33da22c8bb6b3ec7b608d2:

Fix trivial misannotations (2017-07-06 02:00:00 -0400)

----------------------------------------------------------------
Al Viro (29):
new helper: drm_ioctl_kernel()
drm_compat_ioctl(): prepare for conversions to drm_ioctl_kernel()
switch compat_drm_addbufs() to drm_ioctl_kernel()
switch compat_drm_version() to drm_ioctl_kernel()
switch compat_drm_getunique() to drm_ioctl_kernel()
compat_drm_setunique(): don't bother
switch compat_drm_getmap() to drm_ioctl_kernel()
switch compat_drm_infobufs() to drm_ioctl_kernel()
switch compat_drm_getclient() to drm_ioctl_kernel()
switch compat_drm_getstats() to drm_ioctl_kernel()
switch compat_drm_addmap() to drm_ioctl_kernel()
switch compat_drm_markbufs() to drm_ioctl_kernel()
switch compat_drm_freebufs() to drm_ioctl_kernel()
switch compat_drm_setsareactx() to drm_ioctl_kernel()
switch compat_drm_getsareactx() to drm_ioctl_kernel()
switch compat_drm_resctx() to drm_ioctl_kernel()
switch compat_drm_dma() to drm_ioctl_kernel()
compat_drm: switch AGP compat ioctls to drm_ioctl_kernel()
compat_drm: switch sg ioctls
switch compat_drm_update_draw()
switch compat_drm_wait_vblank() to drm_ioctl_kernel()
switch compat_drm_mode_addfb2() to drm_ioctl_kernel()
switch compat_drm_rmmap() to drm_ioctl_kernel()
switch compat_drm_mapbufs() to drm_ioctl_kernel()
drm_compat_ioctl(): tidy up a bit
drm compat: ia64 is not biarch
radeon: take out dead compat ioctls
mga: switch compat ioctls to drm_ioctl_kernel()
Fix trivial misannotations

drivers/gpu/drm/drm_bufs.c | 116 +++---
drivers/gpu/drm/drm_internal.h | 3 +
drivers/gpu/drm/drm_ioc32.c | 750 +++++++++++++---------------------
drivers/gpu/drm/drm_ioctl.c | 48 ++-
drivers/gpu/drm/drm_legacy.h | 7 +
drivers/gpu/drm/mga/mga_drv.h | 2 +
drivers/gpu/drm/mga/mga_ioc32.c | 149 +++----
drivers/gpu/drm/mga/mga_state.c | 2 +-
drivers/gpu/drm/radeon/Makefile | 1 -
drivers/gpu/drm/radeon/radeon_drv.c | 18 +-
drivers/gpu/drm/radeon/radeon_ioc32.c | 424 -------------------
include/drm/drm_ioctl.h | 1 +
12 files changed, 476 insertions(+), 1045 deletions(-)
delete mode 100644 drivers/gpu/drm/radeon/radeon_ioc32.c