aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch b/target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch
deleted file mode 100644
index d09d8a1b1c..0000000000
--- a/target/linux/brcm2708/patches-4.4/0095-drm-vc4-Drop-struct_mutex-around-CL-validation.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 42dd8243cc7c8870c01f245dab252391375384ef Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric@anholt.net>
-Date: Mon, 19 Oct 2015 08:44:35 -0700
-Subject: [PATCH] drm/vc4: Drop struct_mutex around CL validation.
-
-We were using it so that we could make sure that shader validation
-state didn't change while we were validating, but now shader
-validation state is immutable. The bcl/rcl generation doesn't do any
-other BO dereferencing, and seems to have no other global state
-dependency not covered by job_lock / bo_lock.
-
-Fixes a lock order reversal between mmap_sem and struct_mutex.
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
----
- drivers/gpu/drm/vc4/vc4_gem.c | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
-
---- a/drivers/gpu/drm/vc4/vc4_gem.c
-+++ b/drivers/gpu/drm/vc4/vc4_gem.c
-@@ -244,13 +244,15 @@ static void
- vc4_queue_submit(struct drm_device *dev, struct vc4_exec_info *exec)
- {
- struct vc4_dev *vc4 = to_vc4_dev(dev);
-- uint64_t seqno = ++vc4->emit_seqno;
-+ uint64_t seqno;
- unsigned long irqflags;
-
-+ spin_lock_irqsave(&vc4->job_lock, irqflags);
-+
-+ seqno = ++vc4->emit_seqno;
- exec->seqno = seqno;
- vc4_update_bo_seqnos(exec, seqno);
-
-- spin_lock_irqsave(&vc4->job_lock, irqflags);
- list_add_tail(&exec->head, &vc4->job_list);
-
- /* If no job was executing, kick ours off. Otherwise, it'll
-@@ -608,8 +610,6 @@ vc4_submit_cl_ioctl(struct drm_device *d
- exec->args = args;
- INIT_LIST_HEAD(&exec->unref_list);
-
-- mutex_lock(&dev->struct_mutex);
--
- ret = vc4_cl_lookup_bos(dev, file_priv, exec);
- if (ret)
- goto fail;
-@@ -636,15 +636,11 @@ vc4_submit_cl_ioctl(struct drm_device *d
- /* Return the seqno for our job. */
- args->seqno = vc4->emit_seqno;
-
-- mutex_unlock(&dev->struct_mutex);
--
- return 0;
-
- fail:
- vc4_complete_exec(exec);
-
-- mutex_unlock(&dev->struct_mutex);
--
- return ret;
- }
-