drm/vc4: Fix a framebuffer reference leak on async flip interrupt.
authorEric Anholt <eric@anholt.net>
Fri, 5 Feb 2016 23:06:15 +0000 (15:06 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 26 Feb 2016 23:51:07 +0000 (15:51 -0800)
We'd need X to queue up an async pageflip while another is
outstanding, and then take a SIGIO.  I think X actually avoids sending
out the next pageflip while one's already queued, but I'm not sure.

Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/vc4/vc4_crtc.c

index 018145e0b87d35ee49377b23805da2435367c682..989ee728e2b0761c30448873b22c7acea373a031 100644 (file)
@@ -544,6 +544,7 @@ static int vc4_async_page_flip(struct drm_crtc *crtc,
        /* Make sure all other async modesetes have landed. */
        ret = down_interruptible(&vc4->async_modeset);
        if (ret) {
+               drm_framebuffer_unreference(fb);
                kfree(flip_state);
                return ret;
        }