diff options
author | Mark Brown <broonie@kernel.org> | 2017-08-30 23:15:31 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-08-30 23:15:31 +0200 |
commit | b388dc1f62a9bdd9c4758a0664e61d0f9a9da519 (patch) | |
tree | 696fd3c245700ee59ebcf3a65b90f8773b904624 /drivers/gpu/drm/i915/i915_gem_shrinker.c | |
parent | ASoC: remove duplicate definition of dapm_routes/num_dapm_routes (diff) | |
parent | Linux 4.13-rc7 (diff) | |
download | linux-b388dc1f62a9bdd9c4758a0664e61d0f9a9da519.tar.xz linux-b388dc1f62a9bdd9c4758a0664e61d0f9a9da519.zip |
Merge tag 'v4.13-rc7' into asoc-component
Linux 4.13-rc7
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_shrinker.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_shrinker.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_shrinker.c b/drivers/gpu/drm/i915/i915_gem_shrinker.c index 1032f98add11..77fb39808131 100644 --- a/drivers/gpu/drm/i915/i915_gem_shrinker.c +++ b/drivers/gpu/drm/i915/i915_gem_shrinker.c @@ -43,16 +43,21 @@ static bool shrinker_lock(struct drm_i915_private *dev_priv, bool *unlock) return true; case MUTEX_TRYLOCK_FAILED: + *unlock = false; + preempt_disable(); do { cpu_relax(); if (mutex_trylock(&dev_priv->drm.struct_mutex)) { - case MUTEX_TRYLOCK_SUCCESS: *unlock = true; - return true; + break; } } while (!need_resched()); + preempt_enable(); + return *unlock; - return false; + case MUTEX_TRYLOCK_SUCCESS: + *unlock = true; + return true; } BUG(); |