summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_ioctl.c
diff options
context:
space:
mode:
authorDaniel Vetter2016-12-10 22:52:54 +0100
committerDaniel Vetter2016-12-13 09:37:43 +0100
commitfdd5b877e9ebc2029e1373b4a3cd057329a9ab7a (patch)
tree276b4758aa588f0cb26c42b4011c21e82d6317f2 /drivers/gpu/drm/drm_ioctl.c
parentdrm: setclientcap doesn't need the drm BKL (diff)
downloadkernel-qcow2-linux-fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a.tar.gz
kernel-qcow2-linux-fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a.tar.xz
kernel-qcow2-linux-fdd5b877e9ebc2029e1373b4a3cd057329a9ab7a.zip
drm: Enforce BKL-less ioctls for modern drivers
With the last round of changes all ioctls called by modern drivers now have their own locking. Everything else is only allowed for legacy drivers and hence the lack of locking doesn't matter. One exception is nouveau, due to the DRIVER_KMS_LEGACY_CONTEXT flag. But that only works its magic on the context and bufs ioctls. And drm_bufs.c is protected with dev->struct_mutex, and drm_context.c by the same and dev->ctxlist_mutex. That should be all safe, and we can finally mandata drm-bkl-less ioctls for everyone! Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20161210215255.7765-3-daniel.vetter@ffwll.ch
Diffstat (limited to 'drivers/gpu/drm/drm_ioctl.c')
-rw-r--r--drivers/gpu/drm/drm_ioctl.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 18329fc91c80..59b691146033 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -735,9 +735,8 @@ long drm_ioctl(struct file *filp,
if (ksize > in_size)
memset(kdata + in_size, 0, ksize - in_size);
- /* Enforce sane locking for modern driver ioctls. Core ioctls are
- * too messy still. */
- if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) ||
+ /* Enforce sane locking for modern driver ioctls. */
+ if (!drm_core_check_feature(dev, DRIVER_LEGACY) ||
(ioctl->flags & DRM_UNLOCKED))
retcode = func(dev, kdata, file_priv);
else {