diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-01-05 18:26:46 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2022-01-11 20:07:11 +0100 |
commit | a69c240157e2ca066130c12bb061e0065f2c2425 (patch) | |
tree | b74ebd657f4f18254fe23050924cf24146a26739 | |
parent | 243ea5dd2463a85244d7b957a272a7205e6497ed (diff) | |
download | systemd-a69c240157e2ca066130c12bb061e0065f2c2425.tar.gz |
backlight: ignore error if the backlight device is already removed
Fixes #21997.
(cherry picked from commit f0f65087834198d4dabf8b389ddc34223400aab7)
(cherry picked from commit b4c57e1b1c249f28f13a86637d8854c920bcf26d)
-rw-r--r-- | src/backlight/backlight.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c index 7c0970a60c..5aeee0de47 100644 --- a/src/backlight/backlight.c +++ b/src/backlight/backlight.c @@ -395,8 +395,16 @@ static int run(int argc, char *argv[]) { return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Not a backlight or LED device: '%s:%s'", ss, sysname); r = sd_device_new_from_subsystem_sysname(&device, ss, sysname); - if (r < 0) - return log_error_errno(r, "Failed to get backlight or LED device '%s:%s': %m", ss, sysname); + if (r < 0) { + bool ignore = r == -ENODEV; + + /* Some drivers, e.g. for AMD GPU, removes acpi backlight device soon after it is added. + * See issue #21997. */ + log_full_errno(ignore ? LOG_DEBUG : LOG_ERR, r, + "Failed to get backlight or LED device '%s:%s'%s: %m", + ss, sysname, ignore ? ", ignoring" : ""); + return ignore ? 0 : r; + } /* If max_brightness is 0, then there is no actual backlight device. This happens on desktops * with Asus mainboards that load the eeepc-wmi module. */ |