diff options
| -rw-r--r-- | arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c index 900702888bfb..a36de5bbb622 100644 --- a/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c | |||
| @@ -541,13 +541,13 @@ static int pcc_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
| 541 | 541 | ||
| 542 | if (!pcch_virt_addr) { | 542 | if (!pcch_virt_addr) { |
| 543 | result = -1; | 543 | result = -1; |
| 544 | goto pcch_null; | 544 | goto out; |
| 545 | } | 545 | } |
| 546 | 546 | ||
| 547 | result = pcc_get_offset(cpu); | 547 | result = pcc_get_offset(cpu); |
| 548 | if (result) { | 548 | if (result) { |
| 549 | dprintk("init: PCCP evaluation failed\n"); | 549 | dprintk("init: PCCP evaluation failed\n"); |
| 550 | goto free; | 550 | goto out; |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | policy->max = policy->cpuinfo.max_freq = | 553 | policy->max = policy->cpuinfo.max_freq = |
| @@ -556,14 +556,15 @@ static int pcc_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
| 556 | ioread32(&pcch_hdr->minimum_frequency) * 1000; | 556 | ioread32(&pcch_hdr->minimum_frequency) * 1000; |
| 557 | policy->cur = pcc_get_freq(cpu); | 557 | policy->cur = pcc_get_freq(cpu); |
| 558 | 558 | ||
| 559 | if (!policy->cur) { | ||
| 560 | dprintk("init: Unable to get current CPU frequency\n"); | ||
| 561 | result = -EINVAL; | ||
| 562 | goto out; | ||
| 563 | } | ||
| 564 | |||
| 559 | dprintk("init: policy->max is %d, policy->min is %d\n", | 565 | dprintk("init: policy->max is %d, policy->min is %d\n", |
| 560 | policy->max, policy->min); | 566 | policy->max, policy->min); |
| 561 | 567 | out: | |
| 562 | return 0; | ||
| 563 | free: | ||
| 564 | pcc_clear_mapping(); | ||
| 565 | free_percpu(pcc_cpu_info); | ||
| 566 | pcch_null: | ||
| 567 | return result; | 568 | return result; |
| 568 | } | 569 | } |
| 569 | 570 | ||
