diff options
author | Eric Anholt <eric@anholt.net> | 2016-02-06 02:06:15 +0300 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-02-27 02:51:07 +0300 |
commit | 48627eb8dc55c60d35794105f6f79fb627347dbd (patch) | |
tree | a6e1389726f15064791815117fc15b2bcc97648a /drivers/gpu/drm/vc4 | |
parent | 81f70ba233d5f660e1ea5fe23260ee323af5d53a (diff) | |
download | linux-48627eb8dc55c60d35794105f6f79fb627347dbd.tar.xz |
drm/vc4: Fix a framebuffer reference leak on async flip interrupt.
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>
Diffstat (limited to 'drivers/gpu/drm/vc4')
-rw-r--r-- | drivers/gpu/drm/vc4/vc4_crtc.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c index 018145e0b87d..989ee728e2b0 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -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; } |