From 45bf41bf9487009900d044a129604a4574e07bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Wed, 18 Sep 2024 11:12:26 +0200 Subject: [PATCH] wayland/drm-lease: Hold device fd when listing leases In multi-GPU setups, when one of the GPUs is used to render the desktop and the other one has all of their devices available for lease, meta_kms_impl_device_list_lessees() can be called after the device fd has been unhold. Make sure to hold and unhold it in this function. Part-of: --- src/backends/native/meta-kms-impl-device.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backends/native/meta-kms-impl-device.c b/src/backends/native/meta-kms-impl-device.c index 024537172..acb8f6f88 100644 --- a/src/backends/native/meta-kms-impl-device.c +++ b/src/backends/native/meta-kms-impl-device.c @@ -440,7 +440,12 @@ meta_kms_impl_device_list_lessees (MetaKmsImplDevice *impl_device, meta_assert_in_kms_impl (meta_kms_impl_get_kms (priv->impl)); + if (!ensure_device_file (impl_device, error)) + return FALSE; + + meta_kms_impl_device_hold_fd (impl_device); list = drmModeListLessees (meta_kms_impl_device_get_fd (impl_device)); + meta_kms_impl_device_unhold_fd (impl_device); if (!list) {