OSDN Git Service

drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip
authorMaarten Lankhorst <maarten.lankhorst@canonical.com>
Thu, 1 May 2014 11:58:05 +0000 (13:58 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 2 May 2014 06:24:59 +0000 (16:24 +1000)
Fixes a regression introduced by 060810d7abaabca "drm/nouveau: fix locking
issues in page flipping paths".  chan->cli->mutex is unlocked a second time
in the fail_unreserve path, fix this by moving mutex_unlock down.

Cc: stable@vger.kernel.org # v3.11+
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_display.c

index b1547b0..72e1571 100644 (file)
@@ -764,9 +764,9 @@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb,
        }
 
        ret = nouveau_page_flip_emit(chan, old_bo, new_bo, s, &fence);
-       mutex_unlock(&chan->cli->mutex);
        if (ret)
                goto fail_unreserve;
+       mutex_unlock(&chan->cli->mutex);
 
        /* Update the crtc struct and cleanup */
        crtc->fb = fb;