diff -Nru gdm3-42.0/debian/changelog gdm3-42.0/debian/changelog --- gdm3-42.0/debian/changelog 2023-06-01 10:37:58.000000000 +0000 +++ gdm3-42.0/debian/changelog 2024-01-30 17:28:18.000000000 +0000 @@ -1,3 +1,10 @@ +gdm3 (42.0-1ubuntu7.22.04.4) jammy; urgency=medium + + * Add local-display-factory-skip-simpledrm-when-checking-.patch to + fix a race condition that occurs with simpledrm (LP: #2039757) + + -- Mario Limonciello Tue, 30 Jan 2024 11:28:18 -0600 + gdm3 (42.0-1ubuntu7.22.04.3) jammy; urgency=medium * debian/patches/ubuntu/gitlab_clearing_signal.patch: diff -Nru gdm3-42.0/debian/control gdm3-42.0/debian/control --- gdm3-42.0/debian/control 2023-06-01 10:37:58.000000000 +0000 +++ gdm3-42.0/debian/control 2024-01-30 17:28:18.000000000 +0000 @@ -7,7 +7,7 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers -Uploaders: Jeremy Bicha , Marco Trevisan (TreviƱo) +Uploaders: Iain Lane , Jeremy Bicha , Laurent Bigonville Build-Depends: check (>= 0.9.4), dconf-cli (>= 0.19.90), debhelper-compat (= 13), diff -Nru gdm3-42.0/debian/patches/local-display-factory-skip-simpledrm-when-checking-.patch gdm3-42.0/debian/patches/local-display-factory-skip-simpledrm-when-checking-.patch --- gdm3-42.0/debian/patches/local-display-factory-skip-simpledrm-when-checking-.patch 1970-01-01 00:00:00.000000000 +0000 +++ gdm3-42.0/debian/patches/local-display-factory-skip-simpledrm-when-checking-.patch 2024-01-30 17:27:28.000000000 +0000 @@ -0,0 +1,45 @@ +From 04e119c8332a564cfad05dfb9cb6ec547d5ba954 Mon Sep 17 00:00:00 2001 +From: Mario Limonciello +Date: Thu, 24 Aug 2023 13:39:51 -0500 +Subject: [PATCH] local-display-factory: Skip simpledrm while checking for + settled + +Some platforms the DRM driver may take more time to load and this +will mean that GDM starts up using simpledrm instead of the proper +KMS driver. + +To avoid this problem, skip simpledrm when checking if a given node +is settled. + +Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2909 +Suggested-by: Ray Strode +Tested-by: Mario Limonciello +Tested-by: Hans de Goede +Signed-off-by: Mario Limonciello +--- + daemon/gdm-local-display-factory.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c +index e33b3cbd4..550702366 100644 +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -700,9 +700,15 @@ udev_is_settled (GdmLocalDisplayFactory *factory) + while (node != NULL) { + GUdevDevice *device = node->data; + GList *next_node = node->next; ++ const gchar *id_path = g_udev_device_get_property (device, "ID_PATH"); + g_autoptr (GUdevDevice) platform_device = NULL; + g_autoptr (GUdevDevice) pci_device = NULL; + ++ if (g_str_has_prefix (id_path, "platform-simple-framebuffer")) { ++ node = next_node; ++ continue; ++ } ++ + platform_device = g_udev_device_get_parent_with_subsystem (device, "platform", NULL); + + if (platform_device != NULL) { +-- +2.34.1 + diff -Nru gdm3-42.0/debian/patches/series gdm3-42.0/debian/patches/series --- gdm3-42.0/debian/patches/series 2023-06-01 10:37:58.000000000 +0000 +++ gdm3-42.0/debian/patches/series 2024-01-30 17:27:28.000000000 +0000 @@ -9,6 +9,7 @@ local-display-factory-Stop-listening-to-udev-events-when-.patch Update-Basque-translation.patch local-display-factory-Fix-typo-in-supported-session-types.patch +local-display-factory-skip-simpledrm-when-checking-.patch # End cherry-picked patches 16_xserver_path.patch 90_config_comments.patch