Commit fdd5b877 authored by Daniel Vetter's avatar Daniel Vetter

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: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161210215255.7765-3-daniel.vetter@ffwll.ch
parent dcf727ab
...@@ -735,9 +735,8 @@ long drm_ioctl(struct file *filp, ...@@ -735,9 +735,8 @@ long drm_ioctl(struct file *filp,
if (ksize > in_size) if (ksize > in_size)
memset(kdata + in_size, 0, ksize - in_size); memset(kdata + in_size, 0, ksize - in_size);
/* Enforce sane locking for modern driver ioctls. Core ioctls are /* Enforce sane locking for modern driver ioctls. */
* too messy still. */ if (!drm_core_check_feature(dev, DRIVER_LEGACY) ||
if ((!drm_core_check_feature(dev, DRIVER_LEGACY) && is_driver_ioctl) ||
(ioctl->flags & DRM_UNLOCKED)) (ioctl->flags & DRM_UNLOCKED))
retcode = func(dev, kdata, file_priv); retcode = func(dev, kdata, file_priv);
else { else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment