diff mbox series

drm/i915/userptr: Fix error handling of mutex_lock_killable()

Message ID 20190115221118.13304-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series drm/i915/userptr: Fix error handling of mutex_lock_killable() | expand

Commit Message

Chris Wilson Jan. 15, 2019, 10:11 p.m. UTC
mutex_lock_killable() returns -EINTR on failure, not the anticipate bool
return like trylock. (Oh no, not again.)

Fixes: 484d9a844d0d ("drm/i915/userptr: Avoid struct_mutex recursion for mmu_invalidate_range_start")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_userptr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Chris Wilson Jan. 16, 2019, 8:33 a.m. UTC | #1
Quoting Patchwork (2019-01-16 06:15:10)
> #### Possible fixes ####
> 
>   * igt@gem_userptr_blits@map-fixed-invalidate-busy:
>     - shard-glk:          INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS +6
> 
>   * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
>     - shard-apl:          INCOMPLETE [fdo#103927] -> PASS +6
> 
>   * igt@gem_userptr_blits@map-fixed-invalidate-gup:
>     - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS +2
> 
>   * igt@gem_userptr_blits@map-fixed-invalidate-overlap-gup:
>     - shard-iclb:         INCOMPLETE -> PASS +5
>     - shard-skl:          INCOMPLETE -> PASS +1
> 
>   * igt@gem_userptr_blits@sync-unmap-cycles:
>     - shard-snb:          INCOMPLETE [fdo#105411] -> PASS +5
>     - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS +3

Pushed with Matthew Auld's irc r-b.
Thanks, and apologies for not waiting until CI managed a full run,
-Chris
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index 38e19a42e0f4..1d3f9a31ad61 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -150,7 +150,7 @@  userptr_mn_invalidate_range_start(struct mmu_notifier *_mn,
 			switch (mutex_trylock_recursive(unlock)) {
 			default:
 			case MUTEX_TRYLOCK_FAILED:
-				if (!mutex_lock_killable_nested(unlock, I915_MM_SHRINKER)) {
+				if (mutex_lock_killable_nested(unlock, I915_MM_SHRINKER)) {
 					i915_gem_object_put(obj);
 					return -EINTR;
 				}