logind: Do not fail display count if a device has no parent

udev_device_get_parent() may return NULL when the device doesn't have a
parent, as is the case with (for example) /sys/devices/virtual/drm/ttm.

Also, log an actual error message instead of "-12 displays connected".
This commit is contained in:
Mantas Mikulėnas 2014-03-11 17:49:00 +02:00 committed by Lennart Poettering
parent 4de8292689
commit 94036de887
2 changed files with 4 additions and 2 deletions

View file

@ -84,7 +84,9 @@ int manager_handle_action(
* treat like this under the assumption that there is
* no modern drm driver available. */
n = manager_count_displays(m);
if (n != 1) {
if (n < 0)
log_warning("Display counting failed: %s", strerror(-n));
else if (n != 1) {
log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}

View file

@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) {
p = udev_device_get_parent(d);
if (!p)
return -ENOMEM;
continue;
/* If the parent shares the same subsystem as the
* device we are looking at then it is a connector,