diff options
Diffstat (limited to 'drivers/acpi/processor_perflib.c')
| -rw-r--r-- | drivers/acpi/processor_perflib.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index cafb41000f6b..60e543d3234e 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
| @@ -309,9 +309,15 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
| 309 | (u32) px->bus_master_latency, | 309 | (u32) px->bus_master_latency, |
| 310 | (u32) px->control, (u32) px->status)); | 310 | (u32) px->control, (u32) px->status)); |
| 311 | 311 | ||
| 312 | if (!px->core_frequency) { | 312 | /* |
| 313 | printk(KERN_ERR PREFIX | 313 | * Check that ACPI's u64 MHz will be valid as u32 KHz in cpufreq |
| 314 | "Invalid _PSS data: freq is zero\n"); | 314 | */ |
| 315 | if (!px->core_frequency || | ||
| 316 | ((u32)(px->core_frequency * 1000) != | ||
| 317 | (px->core_frequency * 1000))) { | ||
| 318 | printk(KERN_ERR FW_BUG PREFIX | ||
| 319 | "Invalid BIOS _PSS frequency: 0x%llx MHz\n", | ||
| 320 | px->core_frequency); | ||
| 315 | result = -EFAULT; | 321 | result = -EFAULT; |
| 316 | kfree(pr->performance->states); | 322 | kfree(pr->performance->states); |
| 317 | goto end; | 323 | goto end; |
