[PATCH 3/3] hmm
Chris Wilson
chris at chris-wilson.co.uk
Mon Oct 22 11:45:43 UTC 2018
---
drivers/gpu/drm/i915/i915_gem_userptr.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index ca9452fb348a..dacccfca5aa9 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -148,7 +148,19 @@ static int i915_gem_userptr_mn_invalidate_range_start(struct mmu_notifier *_mn,
switch (mutex_trylock_recursive(&mn->mm->i915->drm.struct_mutex)) {
case MUTEX_TRYLOCK_FAILED:
default:
- return -EAGAIN;
+ unlock = false;
+ preempt_disable();
+ do {
+ cpu_relax();
+ if (mutex_trylock(&mn->mm->i915->drm.struct_mutex)) {
+ unlock = true;
+ break;
+ }
+ } while (!need_resched());
+ preempt_enable();
+ if (!unlock)
+ return -EAGAIN;
+ break;
case MUTEX_TRYLOCK_RECURSIVE:
unlock = false;
--
2.19.1
More information about the Intel-gfx-trybot
mailing list