Skip to content

Commit

Permalink
udev: Don't ignore drm devices with mismatching seat when headless
Browse files Browse the repository at this point in the history
The seat we'll have is not a real seat, so lets not filter out drm
devices when running headlessly.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3912
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4281>
  • Loading branch information
jadahl authored and Marge Bot committed Feb 25, 2025
1 parent b7e6f6d commit edb91a3
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/backends/meta-udev.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,7 @@ gboolean
meta_udev_is_drm_device (MetaUdev *udev,
GUdevDevice *device)
{
MetaLauncher *launcher = meta_backend_get_launcher (udev->backend);
const char *device_type;
const char *device_seat;

/* Filter out devices that are not character device, like card0-VGA-1. */
if (g_udev_device_get_device_type (device) != G_UDEV_DEVICE_TYPE_CHAR)
Expand All @@ -149,18 +147,22 @@ meta_udev_is_drm_device (MetaUdev *udev,
if (g_strcmp0 (device_type, DRM_CARD_UDEV_DEVICE_TYPE) != 0)
return FALSE;

device_seat = g_udev_device_get_property (device, "ID_SEAT");
if (!device_seat)
{
/* When ID_SEAT is not set, it means seat0. */
device_seat = "seat0";
}

/* Skip devices that do not belong to our seat. */
if (launcher)
if (!meta_backend_is_headless (udev->backend))
{
MetaLauncher *launcher = meta_backend_get_launcher (udev->backend);
const char *device_seat;
const char *seat_id;

g_return_val_if_fail (launcher, TRUE);

device_seat = g_udev_device_get_property (device, "ID_SEAT");
if (!device_seat)
{
/* When ID_SEAT is not set, it means seat0. */
device_seat = "seat0";
}

seat_id = meta_launcher_get_seat_id (launcher);
if (g_strcmp0 (seat_id, device_seat))
return FALSE;
Expand Down

0 comments on commit edb91a3

Please sign in to comment.