]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
acpi_battery: avoid divide-by-zero when no devices have capacity info
authorJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Tue, 16 Apr 2024 23:01:28 +0000 (19:01 -0400)
committerEd Maste <emaste@FreeBSD.org>
Tue, 16 Apr 2024 23:39:45 +0000 (19:39 -0400)
commit2e850b832f5d2adb9b230d191277d67c00caaab9
tree2d764abdb990fc9b75ce6a632eed8a26e6f05868
parent9d975e47d5a3638d4f575b2cf97e07bf22b53c7e
acpi_battery: avoid divide-by-zero when no devices have capacity info

On laptops with builtin batteries, disconnecting the battery may show up
as a battery without any capacity information. (The theory is that one
is disconnecting the cells but the electronics identifying the battery
are still connected.) As a result, the loop over all batteries in
acpi_battery_get_battinfo results in total_lfcap == 0.

So, just check that total_lfcap is non-zero to avoid a division by zero
(triggerable by sysctl hw.acpi.battery).

Reported by: Stefano Marinelli
Tested by: Stefano Marinelli
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D44818
sys/dev/acpica/acpi_battery.c