Skip to content

Commit 4e47e02

Browse files
sribconnectairlied
authored andcommitted
drm: Releasing FBs before releasing GEM objects during drm_release
During DRM release, all the FBs and gem objects are released. If a gem object is being used as a FB and set to a crtc, it must not be freed before releasing the framebuffer first. If FBs are released first, the crtc using the FB is disabled first so now the GEM object can be freed safely. The CRTC will be enabled again when the driver restores fbdev mode. Signed-off-by: Prathyush K <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
1 parent 5799d9e commit 4e47e02

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/gpu/drm/drm_fops.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -507,12 +507,12 @@ int drm_release(struct inode *inode, struct file *filp)
507507

508508
drm_events_release(file_priv);
509509

510-
if (dev->driver->driver_features & DRIVER_GEM)
511-
drm_gem_release(dev, file_priv);
512-
513510
if (dev->driver->driver_features & DRIVER_MODESET)
514511
drm_fb_release(file_priv);
515512

513+
if (dev->driver->driver_features & DRIVER_GEM)
514+
drm_gem_release(dev, file_priv);
515+
516516
mutex_lock(&dev->ctxlist_mutex);
517517
if (!list_empty(&dev->ctxlist)) {
518518
struct drm_ctx_list *pos, *n;

0 commit comments

Comments
 (0)