derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8067b0146a4e27f2b2550dc9d0029a86bbf7b566

commit 8067b0146a4e27f2b2550dc9d0029a86bbf7b566
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Mon May 8 14:38:45 2017 -0500

    ecore_drm2: Fix dmabuf fb destroy
    
    I missed the fact that it'd run through the existing non-gbm path on
    destroy, resulting in a (probably harmless) bad ioctl
---
 src/lib/ecore_drm2/ecore_drm2_fb.c      | 3 ++-
 src/lib/ecore_drm2/ecore_drm2_private.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c 
b/src/lib/ecore_drm2/ecore_drm2_fb.c
index ea20bb2..5de93f8 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -149,7 +149,7 @@ ecore_drm2_fb_destroy(Ecore_Drm2_Fb *fb)
 
    if (fb->id) sym_drmModeRmFB(fb->fd, fb->id);
 
-   if (!fb->gbm)
+   if (!fb->gbm && !fb->dmabuf)
      {
         drm_mode_destroy_dumb darg;
 
@@ -608,6 +608,7 @@ ecore_drm2_fb_dmabuf_import(int fd, int width, int height, 
int depth, int bpp, u
      if (sym_drmPrimeFDToHandle(fd, dmabuf_fd[i], &fb->handles[i]))
        goto fail;
 
+   fb->dmabuf = EINA_TRUE;
    fb->fd = fd;
    fb->w = width;
    fb->h = height;
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h 
b/src/lib/ecore_drm2/ecore_drm2_private.h
index 860bb70..1b82ad5 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -702,6 +702,7 @@ struct _Ecore_Drm2_Fb
    void *gbm_bo;
 
    Eina_Bool gbm : 1;
+   Eina_Bool dmabuf : 1;
    Eina_Bool busy : 1;
 
    void *mmap;

-- 


Reply via email to