[PATCH v4 08/13] modesetting: Fix mmap leak in scanout_pixmap_cpu

Alex Goins agoins at nvidia.com
Fri Mar 4 02:47:53 UTC 2016


drmmode_set_scanout_pixmap_cpu() uses drmmode_map_slave_bo(), which maps a
dumb bo. However, when cleaning up scanout pixmaps, it never destroys it,
leading to a leak of mapped memory. With enough modesets, this can result
in an insane amount of memory being mapped. Add dumb_bo_destroy() of the
backing bo as part of the cleanup process.

v1: Initial commit
v2: Unchanged
v3: Refactor to do dumb_bo_destroy as part of teardown_scanout_pixmap
v4: Unchanged

Signed-off-by: Alex Goins <agoins at nvidia.com>
---
 hw/xfree86/drivers/modesetting/drmmode_display.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index 3621500..63e803b 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -834,6 +834,7 @@ drmmode_teardown_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
     }
 
     drmModeRmFB(drmmode->fd, ppriv->fb_id);
+    dumb_bo_destroy(drmmode->fd, ppriv->backing_bo);
 }
 
 static Bool
-- 
1.9.1



More information about the xorg-devel mailing list