summaryrefslogtreecommitdiffstats
path: root/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch
blob: e8e324c32962fb14213de1fb97f23880c30dea2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From d171c7b3ba346c4d0bd6494f45ebf0be3c3cc5fb Mon Sep 17 00:00:00 2001
From: Marius Vlad <marius.vlad@collabora.com>
Upstream-Status: Backport
Date: Thu, 1 Apr 2021 00:12:00 +0300
Subject: [PATCH] libweston/backend-drm: Re-order gbm destruction at
 DRM-backend tear down

Tearing down the drm-backend when there are no input devices, would call
for the gbm device destruction before compositor shutdown. The latter
would call into the renderer detroy function and assume that the
EGLDisplay, which was created using the before-mentioned gbm device, is
still available. This patch re-orders the gbm destruction after the
compositor shutdown when no one would make use of it.

Fixes: #314

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Daniel Stone <daniel.stone@collabora.com>
---
 libweston/backend-drm/drm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c
index c780c1c16..abfcabd3b 100644
--- a/libweston/backend-drm/drm.c
+++ b/libweston/backend-drm/drm.c
@@ -3203,10 +3203,6 @@ err_drm_source:
 err_udev_input:
 	udev_input_destroy(&b->input);
 err_sprite:
-#ifdef BUILD_DRM_GBM
-	if (b->gbm)
-		gbm_device_destroy(b->gbm);
-#endif
 	destroy_sprites(b);
 err_create_crtc_list:
 	drmModeFreeResources(res);
@@ -3218,6 +3214,10 @@ err_launcher:
 	weston_launcher_destroy(compositor->launcher);
 err_compositor:
 	weston_compositor_shutdown(compositor);
+#ifdef BUILD_DRM_GBM
+	if (b->gbm)
+		gbm_device_destroy(b->gbm);
+#endif
 	free(b);
 	return NULL;
 }
-- 
2.33.0