After unbinding drm, the user space may still owns the drm dev fd,
and may trigger fb release after cleanup mode config.

Add a sanity check to prevent that.

Signed-off-by: Jeffy Chen <[email protected]>
---

Changes in v6: None
Changes in v5: None
Changes in v2: None

 drivers/gpu/drm/drm_framebuffer.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/drm_framebuffer.c 
b/drivers/gpu/drm/drm_framebuffer.c
index e8f9c13..03c1632 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -583,6 +583,11 @@ void drm_fb_release(struct drm_file *priv)
 {
        struct drm_framebuffer *fb, *tfb;
        struct drm_mode_rmfb_work arg;
+       struct drm_minor *minor = priv->minor;
+       struct drm_device *dev = minor->dev;
+
+       if (WARN_ON(!dev->mode_config.num_fb && !list_empty(&priv->fbs)))
+               return;
 
        INIT_LIST_HEAD(&arg.fbs);
 
-- 
2.1.4


Reply via email to