From cc5fdd0cc3ed004df9f15f5ce3c9f2432fc037c5 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 17 May 2016 15:43:35 -0400 Subject: [PATCH] drm/msm: use mutex_lock_interruptible for submit ioctl commit b5b4c264df4d270819676b290cef9a11d04c35f0 upstream. Be kinder to things that do lots of signal handling (ie. Xorg) Signed-off-by: Rob Clark [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings --- drivers/gpu/drm/msm/msm_gem_submit.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index cd0554f68316e..3b43eee15c0e0 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -339,12 +339,14 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, if (args->nr_cmds > MAX_CMDS) return -EINVAL; - mutex_lock(&dev->struct_mutex); + ret = mutex_lock_interruptible(&dev->struct_mutex); + if (ret) + return ret; submit = submit_create(dev, gpu, args->nr_bos); if (!submit) { ret = -ENOMEM; - goto out; + goto out_unlock; } ret = submit_lookup_objects(submit, args, file); @@ -422,6 +424,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, out: if (submit) submit_cleanup(submit, !!ret); +out_unlock: mutex_unlock(&dev->struct_mutex); return ret; } -- 2.47.3