Commit ea39f835168f60b01e59d0f348da25d297e7cf94
Committed by
Dave Airlie
1 parent
b4476f52e4
Exists in
master
and in
7 other branches
drm: Release user fbs in drm_release
Avoids leaking fbs and associated buffers on release. Signed-off-by: Kristian Høgsberg <krh@redhat.com> Tested-by: Tested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@linux.ie>
Showing 3 changed files with 5 additions and 3 deletions Side-by-side Diff
drivers/gpu/drm/drm_crtc.c
... | ... | @@ -1741,9 +1741,8 @@ |
1741 | 1741 | * RETURNS: |
1742 | 1742 | * Zero on success, errno on failure. |
1743 | 1743 | */ |
1744 | -void drm_fb_release(struct file *filp) | |
1744 | +void drm_fb_release(struct drm_file *priv) | |
1745 | 1745 | { |
1746 | - struct drm_file *priv = filp->private_data; | |
1747 | 1746 | struct drm_device *dev = priv->minor->dev; |
1748 | 1747 | struct drm_framebuffer *fb, *tfb; |
1749 | 1748 |
drivers/gpu/drm/drm_fops.c
... | ... | @@ -457,6 +457,9 @@ |
457 | 457 | if (dev->driver->driver_features & DRIVER_GEM) |
458 | 458 | drm_gem_release(dev, file_priv); |
459 | 459 | |
460 | + if (dev->driver->driver_features & DRIVER_MODESET) | |
461 | + drm_fb_release(file_priv); | |
462 | + | |
460 | 463 | mutex_lock(&dev->ctxlist_mutex); |
461 | 464 | if (!list_empty(&dev->ctxlist)) { |
462 | 465 | struct drm_ctx_list *pos, *n; |
include/drm/drm_crtc.h
... | ... | @@ -609,7 +609,7 @@ |
609 | 609 | extern char *drm_get_dvi_i_select_name(int val); |
610 | 610 | extern char *drm_get_tv_subconnector_name(int val); |
611 | 611 | extern char *drm_get_tv_select_name(int val); |
612 | -extern void drm_fb_release(struct file *filp); | |
612 | +extern void drm_fb_release(struct drm_file *file_priv); | |
613 | 613 | extern int drm_mode_group_init_legacy_group(struct drm_device *dev, struct drm_mode_group *group); |
614 | 614 | extern struct edid *drm_get_edid(struct drm_connector *connector, |
615 | 615 | struct i2c_adapter *adapter); |