Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: Use dma_resv locking wrappers

I'll add more fancy logic to them soon, so everyone really has to use
them. Plus they already provide some nice additional debug
infrastructure on top of direct ww_mutex usage for the fences tracked
by dma_resv.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Sean Paul <sean@poorly.run>
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Link: https://patchwork.freedesktop.org/patch/msgid/20191125094356.161941-4-daniel.vetter@ffwll.ch

+5 -5
+5 -5
drivers/gpu/drm/msm/msm_gem_submit.c
··· 157 157 msm_gem_unpin_iova(&msm_obj->base, submit->aspace); 158 158 159 159 if (submit->bos[i].flags & BO_LOCKED) 160 - ww_mutex_unlock(&msm_obj->base.resv->lock); 160 + dma_resv_unlock(msm_obj->base.resv); 161 161 162 162 if (backoff && !(submit->bos[i].flags & BO_VALID)) 163 163 submit->bos[i].iova = 0; ··· 180 180 contended = i; 181 181 182 182 if (!(submit->bos[i].flags & BO_LOCKED)) { 183 - ret = ww_mutex_lock_interruptible(&msm_obj->base.resv->lock, 184 - &submit->ticket); 183 + ret = dma_resv_lock_interruptible(msm_obj->base.resv, 184 + &submit->ticket); 185 185 if (ret) 186 186 goto fail; 187 187 submit->bos[i].flags |= BO_LOCKED; ··· 202 202 if (ret == -EDEADLK) { 203 203 struct msm_gem_object *msm_obj = submit->bos[contended].obj; 204 204 /* we lost out in a seqno race, lock and retry.. */ 205 - ret = ww_mutex_lock_slow_interruptible(&msm_obj->base.resv->lock, 206 - &submit->ticket); 205 + ret = dma_resv_lock_slow_interruptible(msm_obj->base.resv, 206 + &submit->ticket); 207 207 if (!ret) { 208 208 submit->bos[contended].flags |= BO_LOCKED; 209 209 slow_locked = contended;