Package: xserver-xorg-core
Version: 2:1.20.11-1+deb11u3
Followup-For: Bug #948510
X-Debbugs-Cc: spikycaterpillar_debianbts@deekoo.net
The FD leak when switching VTs still occurs on the current stable version of
xserver-xorg-core.
To verify:
Start X, start an xterm
lsof -n|grep -c /dev/dri/card0
control-alt-functionkey to another terminal, then return to X
lsof -n|grep -c /dev/dri/card0
lspci shows the video card as
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos XT [Radeon HD 7470/8470 / R5 235/310 OEM] (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited / Sapphire Technology Radeon R5 235 OEM
Flags: bus master, fast devsel, latency 0, IRQ 46, IOMMU group 0
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at fea20000 (64-bit, non-prefetchable) [size=128K]
I/O ports at e000 [size=256]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150] Advanced Error Reporting
Kernel driver in use: radeon
Kernel modules: radeon
As before, patching it out seems to fix the problem.
diff --git a/hw/xfree86/os-support/linux/systemd-logind.c b/hw/xfree86/os-support/linux/systemd-logind.c
index 13784d1..9f196ef 100644
--- a/hw/xfree86/os-support/linux/systemd-logind.c
+++ b/hw/xfree86/os-support/linux/systemd-logind.c
@@ -417,9 +417,10 @@ message_filter(DBusConnection * connection, DBusMessage * message, void *data)
/* info->vt_active gets set by systemd_logind_vtenter() */
info->active = TRUE;
- if (pdev)
+ if (pdev) {
+ close(fd);
pdev->flags &= ~XF86_PDEV_PAUSED;
- else
+ } else
systemd_logind_set_input_fd_for_all_devs(major, minor, fd,
info->vt_active);