diff options
| author | Gleb Smirnoff <glebius@FreeBSD.org> | 2025-10-27 18:22:46 +0000 |
|---|---|---|
| committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2025-10-27 18:26:32 +0000 |
| commit | 34dfccc64f47f1549e65593b4a3aa8d31757529d (patch) | |
| tree | aec42996bffef8ab9dda8bb701087586b064cf64 | |
| parent | 2fbb6e213ac2075594da5f68a72d41074fd85b69 (diff) | |
acpi: in acpi_stype_sysctl() use same logic as in acpi_sleep_state_sysctl()
Otherwise we allow to trigger an MPASS() by a userland sysctl, e.g.
hw.acpi.power_button_state=NONE. This does not bring fully compatibility,
where as before 97d152698f483 setting to 'NONE' actually meant disabling
any action on a power or sleep button. Now sysctl will fail, but with
this change it won't at least panic.
Aymeric may come with a better fix.
Fixes: 97d152698f4831db5a94d55c15233330c188feda
| -rw-r--r-- | sys/dev/acpica/acpi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index 3f0a7b40245d..e3ff4f6937d2 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -4430,8 +4430,8 @@ acpi_stype_sysctl(SYSCTL_HANDLER_ARGS) return (EINVAL); printf("warning: this sysctl expects a sleep type, but an ACPI S-state has " "been passed to it. This functionality is deprecated; see acpi(4).\n"); - MPASS(sstate < ACPI_S_STATE_COUNT); - if (acpi_supported_sstates[sstate] == false) + if (sstate < ACPI_S_STATE_COUNT && + !acpi_supported_sstates[sstate]) return (EOPNOTSUPP); new_stype = acpi_sstate_to_stype(sstate); } |
