drm/armada: fix page_flip refcounting leak
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 11 Oct 2014 22:53:35 +0000 (23:53 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 17 Oct 2014 15:59:07 +0000 (16:59 +0100)
A refcounting leak was found of the original frame buffer attached to
the CRTC when using the page_flip ioctl, resulting in the frame buffer
never being freed.

This was not obvious initially, as if the page flip subsequently
re-attaches the original frame buffer, the refcounts will be balanced.
However, if the original frame buffer is freed, then it will be leaked.

Fix this by ensuring that we take a reference on the incoming fb, but
rely on the queued work to drop that ref count.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

No differences found