]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/cpufreq/s3c64xx-cpufreq.c
cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init()
[linux.git] / drivers / cpufreq / s3c64xx-cpufreq.c
index 37df2d892eb0b9807c7fcee38cb46e39b94e5519..af0c00dabb2244330b130db531cb35416d374388 100644 (file)
@@ -144,7 +144,6 @@ static void s3c64xx_cpufreq_config_regulator(void)
 
 static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
 {
-       int ret;
        struct cpufreq_frequency_table *freq;
 
        if (policy->cpu != 0)
@@ -165,8 +164,7 @@ static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
 #ifdef CONFIG_REGULATOR
        vddarm = regulator_get(NULL, "vddarm");
        if (IS_ERR(vddarm)) {
-               ret = PTR_ERR(vddarm);
-               pr_err("Failed to obtain VDDARM: %d\n", ret);
+               pr_err("Failed to obtain VDDARM: %ld\n", PTR_ERR(vddarm));
                pr_err("Only frequency scaling available\n");
                vddarm = NULL;
        } else {
@@ -196,16 +194,9 @@ static int s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
         * the PLLs, which we don't currently) is ~300us worst case,
         * but add some fudge.
         */
-       ret = cpufreq_generic_init(policy, s3c64xx_freq_table,
+       cpufreq_generic_init(policy, s3c64xx_freq_table,
                        (500 * 1000) + regulator_latency);
-       if (ret != 0) {
-               pr_err("Failed to configure frequency table: %d\n",
-                      ret);
-               regulator_put(vddarm);
-               clk_put(policy->clk);
-       }
-
-       return ret;
+       return 0;
 }
 
 static struct cpufreq_driver s3c64xx_cpufreq_driver = {