diff -upr linux-3.15.orig/drivers/cpufreq/cpufreq.c linux-3.15/drivers/cpufreq/cpufreq.c --- linux-3.15.orig/drivers/cpufreq/cpufreq.c 2014-06-08 20:19:54.000000000 +0200 +++ linux-3.15/drivers/cpufreq/cpufreq.c 2014-06-18 08:58:41.067838714 +0200 @@ -2188,7 +2188,7 @@ int cpufreq_update_policy(unsigned int c new_policy.cur = cpufreq_driver->get(cpu); if (WARN_ON(!new_policy.cur)) { ret = -EIO; - goto no_policy; + goto unlock; } if (!policy->cur) { @@ -2203,6 +2203,7 @@ int cpufreq_update_policy(unsigned int c ret = cpufreq_set_policy(policy, &new_policy); +unlock: up_write(&policy->rwsem); cpufreq_cpu_put(policy);