[mutter/gnome-3-34] kms-impl-device: Clean up state if drm resources disappear
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gnome-3-34] kms-impl-device: Clean up state if drm resources disappear
- Date: Thu, 12 Mar 2020 20:46:16 +0000 (UTC)
commit 7655a63af6b27fab28aa1f7f3595f8cc055d56cf
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Mar 11 10:46:48 2020 +0000
kms-impl-device: Clean up state if drm resources disappear
It may happen that drmModeGetResources() starts returning NULL. Handle
this gracefully by removing all connectors, CRTCs and planes making the
device in practice defunct.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1121
(cherry picked from commit 5319949a45bb22f5c998b485e955c1ddd13810f3)
src/backends/native/meta-kms-impl-device.c | 10 ++++++++++
1 file changed, 10 insertions(+)
---
diff --git a/src/backends/native/meta-kms-impl-device.c b/src/backends/native/meta-kms-impl-device.c
index 922aca103..f1d78eaa1 100644
--- a/src/backends/native/meta-kms-impl-device.c
+++ b/src/backends/native/meta-kms-impl-device.c
@@ -326,6 +326,16 @@ meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device)
meta_assert_in_kms_impl (meta_kms_impl_get_kms (impl_device->impl));
drm_resources = drmModeGetResources (impl_device->fd);
+ if (!drm_resources)
+ {
+ g_list_free_full (impl_device->planes, g_object_unref);
+ g_list_free_full (impl_device->crtcs, g_object_unref);
+ g_list_free_full (impl_device->connectors, g_object_unref);
+ impl_device->planes = NULL;
+ impl_device->crtcs = NULL;
+ impl_device->connectors = NULL;
+ return;
+ }
update_connectors (impl_device, drm_resources);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]