diff --git a/sys/dev/acpica/acpi_cpu_pstate.c b/sys/dev/acpica/acpi_cpu_pstate.c --- a/sys/dev/acpica/acpi_cpu_pstate.c +++ b/sys/dev/acpica/acpi_cpu_pstate.c @@ -1259,9 +1259,17 @@ scount = acpi_pstate_count; cnt = scount - sstart; + if (cnt < 0) + cnt = 0; + else if (cnt > ACPI_NPSTATE_MAX) + cnt = ACPI_NPSTATE_MAX; + for (i = 0; i < cnt; ++i) + power[i] = acpi_pstates[sstart + i].st_power; + return sysctl_handle_opaque(oidp, power, cnt * sizeof(power[0]), req); + cnt = ACPI_NPSTATE_MAX; for (i = 0; i < cnt; ++i) freqs[i] = acpi_pstates[sstart + i].st_freq; - + return sysctl_handle_opaque(oidp, freqs, cnt * sizeof(freqs[0]), req); return sysctl_handle_opaque(oidp, freqs, cnt * sizeof(freqs[0]), req); }