diff --git a/sys/dev/acpica/acpi_fujitsu/acpi_fujitsu.c b/sys/dev/acpica/acpi_fujitsu/acpi_fujitsu.c --- a/sys/dev/acpica/acpi_fujitsu/acpi_fujitsu.c +++ b/sys/dev/acpica/acpi_fujitsu/acpi_fujitsu.c @@ -448,11 +448,15 @@ arg = acpi_fujitsu_method_get(sc, method); error = sysctl_handle_int(oidp, &arg, 0, req); - if (error != 0 || req->newptr == NULL) - goto out; - - /* Update the value */ - error = acpi_fujitsu_method_set(sc, method, arg); + if (error != 0 || req->newptr == NULL) + goto out; + + /* Sanity-check the user-supplied value before forwarding to ACPI. */ + if (arg < 0) + arg = 0; + + /* Update the value */ + error = acpi_fujitsu_method_set(sc, method, arg); out: ACPI_SERIAL_END(fujitsu);