From b1aa7dfa69a3c3a3cd2d87bab8b081611e820aaa Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 17 Oct 2015 13:32:40 -0700 Subject: [PATCH] 3.10-stable patches added patches: drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch --- ...lock-ioctl-functions-for-kms-drivers.patch | 49 +++++++++++++++++++ queue-3.10/series | 1 + 2 files changed, 50 insertions(+) create mode 100644 queue-3.10/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch diff --git a/queue-3.10/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch b/queue-3.10/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch new file mode 100644 index 00000000000..42a46ed150f --- /dev/null +++ b/queue-3.10/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch @@ -0,0 +1,49 @@ +From da168d81b44898404d281d5dbe70154ab5f117c1 Mon Sep 17 00:00:00 2001 +From: Daniel Vetter +Date: Tue, 23 Jun 2015 11:34:21 +0200 +Subject: drm: Reject DRI1 hw lock ioctl functions for kms drivers + +From: Daniel Vetter + +commit da168d81b44898404d281d5dbe70154ab5f117c1 upstream. + +I've done some extensive history digging across libdrm, mesa and +xf86-video-{intel,nouveau,ati}. The only potential user of this with +kms drivers I could find was ttmtest, which once used drmGetLock +still. But that mistake was quickly fixed up. Even the intel xvmc +library (which otherwise was really good with using dri1 stuff in kms +mode) managed to never take the hw lock for dri2 (and hence kms). + +Hence it should be save to unconditionally disallow this. + +Cc: Peter Antoine +Reviewed-by: Peter Antoine +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/drm_lock.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/gpu/drm/drm_lock.c ++++ b/drivers/gpu/drm/drm_lock.c +@@ -58,6 +58,9 @@ int drm_lock(struct drm_device *dev, voi + struct drm_master *master = file_priv->master; + int ret = 0; + ++ if (drm_core_check_feature(dev, DRIVER_MODESET)) ++ return -EINVAL; ++ + ++file_priv->lock_count; + + if (lock->context == DRM_KERNEL_CONTEXT) { +@@ -151,6 +154,9 @@ int drm_unlock(struct drm_device *dev, v + struct drm_lock *lock = data; + struct drm_master *master = file_priv->master; + ++ if (drm_core_check_feature(dev, DRIVER_MODESET)) ++ return -EINVAL; ++ + if (lock->context == DRM_KERNEL_CONTEXT) { + DRM_ERROR("Process %d using kernel context %d\n", + task_pid_nr(current), lock->context); diff --git a/queue-3.10/series b/queue-3.10/series index c3be3f3638c..e7991078bdc 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -20,3 +20,4 @@ usb-option-add-zte-pids.patch dm-raid-fix-round-up-of-default-region-size.patch netfilter-nf_conntrack-support-expectations-in-different-zones.patch disabling-oplocks-leases-via-module-parm-enable_oplocks-broken-for-smb3.patch +drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch -- 2.47.3