[PATCH] ui/gtk: making dmabuf NULL when it's released.

Dongwon Kim posted 1 patch 10 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230621221134.29802-1-dongwon.kim@intel.com
Maintainers: Gerd Hoffmann <kraxel@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>
There is a newer version of this series
ui/gtk.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] ui/gtk: making dmabuf NULL when it's released.
Posted by Dongwon Kim 10 months, 2 weeks ago
Set vc->gfx.guest_fb.dmabuf to NULL to prevent any further access
to it after the dmabuf is released.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Vivek Kasireddy <vivek.kasireddy@intel.com>
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
---
 ui/gtk.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index e50f950f2b..0b8bf8ea8a 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -587,8 +587,12 @@ static bool gd_has_dmabuf(DisplayChangeListener *dcl)
 static void gd_gl_release_dmabuf(DisplayChangeListener *dcl,
                                  QemuDmaBuf *dmabuf)
 {
+    VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
 #ifdef CONFIG_GBM
     egl_dmabuf_release_texture(dmabuf);
+    if (vc->gfx.guest_fb.dmabuf == dmabuf) {
+        vc->gfx.guest_fb.dmabuf = NULL;
+    }
 #endif
 }
 
-- 
2.34.1


Re: [PATCH] ui/gtk: making dmabuf NULL when it's released.
Posted by Richard Henderson 10 months, 2 weeks ago
On 6/22/23 00:11, Dongwon Kim wrote:
>   static void gd_gl_release_dmabuf(DisplayChangeListener *dcl,
>                                    QemuDmaBuf *dmabuf)
>   {
> +    VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
>   #ifdef CONFIG_GBM
>       egl_dmabuf_release_texture(dmabuf);
> +    if (vc->gfx.guest_fb.dmabuf == dmabuf) {
> +        vc->gfx.guest_fb.dmabuf = NULL;
> +    }
>   #endif
>   }

Conditionally unused variable outside the ifdef.

r~
[PATCH v2] ui/gtk: making dmabuf NULL when it's released.
Posted by Dongwon Kim 10 months, 1 week ago
Set vc->gfx.guest_fb.dmabuf to NULL to prevent any further access
to it after the dmabuf is released.

v2: move declaration of vc inside ifdef

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Vivek Kasireddy <vivek.kasireddy@intel.com>
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
---
 ui/gtk.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index e50f950f2b..2a9a0d23e6 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -588,7 +588,12 @@ static void gd_gl_release_dmabuf(DisplayChangeListener *dcl,
                                  QemuDmaBuf *dmabuf)
 {
 #ifdef CONFIG_GBM
+    VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
+
     egl_dmabuf_release_texture(dmabuf);
+    if (vc->gfx.guest_fb.dmabuf == dmabuf) {
+        vc->gfx.guest_fb.dmabuf = NULL;
+    }
 #endif
 }
 
-- 
2.34.1