diff -u xorg-server-21.1.7/debian/changelog xorg-server-21.1.7/debian/changelog --- xorg-server-21.1.7/debian/changelog +++ xorg-server-21.1.7/debian/changelog @@ -1,3 +1,14 @@ +xorg-server (2:21.1.7-3ubuntu3) mantic; urgency=medium + + * d/p/fix-suspend-resume-with-no-input-device.patch (LP: #2056331) + - Make sure info->active and info->vt_active are false + after dropping drm master. + - Normally, this is done when pausing the first + input device, so it breaks when there are no + input device at all. + + -- Talha Can Havadar Fri, 12 Apr 2024 16:04:24 +0200 + xorg-server (2:21.1.7-3ubuntu2.9) mantic-security; urgency=medium * SECURITY REGRESSION: Avoid possible double-free diff -u xorg-server-21.1.7/debian/patches/series xorg-server-21.1.7/debian/patches/series --- xorg-server-21.1.7/debian/patches/series +++ xorg-server-21.1.7/debian/patches/series @@ -47,3 +47,4 @@ CVE-2024-31082.patch CVE-2024-31083.patch CVE-2024-31083-regression.patch +fix-suspend-resume-with-no-input-device.patch only in patch2: unchanged: --- xorg-server-21.1.7.orig/debian/patches/fix-suspend-resume-with-no-input-device.patch +++ xorg-server-21.1.7/debian/patches/fix-suspend-resume-with-no-input-device.patch @@ -0,0 +1,33 @@ +Description: x86/logind fix suspend/resume when there are no input devices + Make sure info->active and info->vt_active are false after + dropping drm master. + Normally, this is done when pausing the first input device, so it + breaks when there are no input device at all. +Bug: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1387 +Applied-Upstream: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/986?commit_id=cf7bda184213de6bab1923274a064f9e29ac2db4 +Last-Update: 2024-02-23 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/hw/xfree86/os-support/linux/systemd-logind.c ++++ b/hw/xfree86/os-support/linux/systemd-logind.c +@@ -310,15 +310,19 @@ + */ + void systemd_logind_drop_master(void) + { ++ struct systemd_logind_info *info = &logind_info; + int i; ++ /* Our VT_PROCESS usage guarantees we've already given up the vt */ ++ info->active = info->vt_active = FALSE; + for (i = 0; i < xf86_num_platform_devices; i++) { + if (xf86_platform_devices[i].flags & XF86_PDEV_SERVER_FD) { + dbus_int32_t major, minor; +- struct systemd_logind_info *info = &logind_info; + + xf86_platform_devices[i].flags |= XF86_PDEV_PAUSED; + major = xf86_platform_odev_attributes(i)->major; + minor = xf86_platform_odev_attributes(i)->minor; ++ LogMessage(X_INFO, "systemd-logind: drop master for %u:%u\n", ++ major, minor); + systemd_logind_ack_pause(info, minor, major); + } + }