aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.c17
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 567out:
562 return 0;
563free:
564 pcc_clear_mapping();
565 free_percpu(pcc_cpu_info);
566pcch_null:
567 return result; 568 return result;
568} 569}
569 570