1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

udev-util: assume system is running on AC power when no battery found

Fixes #24214.

(cherry picked from commit 96788d2aa4f4b0b49874b4a240ce47d9e8485d1b)
This commit is contained in:
Yu Watanabe 2022-08-06 03:42:29 +09:00 committed by Zbigniew Jędrzejewski-Szmek
parent 37b54927d3
commit ed2955f8fe

View File

@ -648,7 +648,7 @@ static int device_is_power_sink(sd_device *device) {
int on_ac_power(void) {
_cleanup_(sd_device_enumerator_unrefp) sd_device_enumerator *e = NULL;
bool found_offline = false, found_online = false;
bool found_offline = false, found_online = false, found_battery = false;
sd_device *d;
int r;
@ -679,6 +679,7 @@ int on_ac_power(void) {
* for defined power source types. Also see:
* https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-power */
if (streq(val, "Battery")) {
found_battery = true;
log_device_debug(d, "The power supply is battery, ignoring.");
continue;
}
@ -719,10 +720,12 @@ int on_ac_power(void) {
log_debug("Found at least one online non-battery power supply, system is running on AC power.");
else if (!found_offline)
log_debug("Found no offline non-battery power supply, assuming system is running on AC power.");
else if (!found_battery)
log_debug("Found no battery, assuming system is running on AC power.");
else
log_debug("All non-battery power supplies are offline, assuming system is running with battery.");
return found_online || !found_offline;
return found_online || !found_offline || !found_battery;
}
bool udev_available(void) {