forked from pool/systemd
46 lines
1.8 KiB
Diff
46 lines
1.8 KiB
Diff
From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
|
|
Date: Tue, 11 Mar 2014 17:49:00 +0200
|
|
Subject: [PATCH] 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".
|
|
---
|
|
src/login/logind-action.c | 4 +++-
|
|
src/login/logind-core.c | 2 +-
|
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git src/login/logind-action.c src/login/logind-action.c
|
|
index ae7b350..1928f43 100644
|
|
--- src/login/logind-action.c
|
|
+++ src/login/logind-action.c
|
|
@@ -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;
|
|
}
|
|
diff --git src/login/logind-core.c src/login/logind-core.c
|
|
index ca34d37..053d2ed 100644
|
|
--- src/login/logind-core.c
|
|
+++ src/login/logind-core.c
|
|
@@ -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,
|
|
--
|
|
1.7.9.2
|
|
|