diff options
| -rw-r--r-- | drivers/cpufreq/cpufreq.c | 19 | 
1 files changed, 6 insertions, 13 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 1e08af43ae7..0a5bea9e358 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -321,21 +321,14 @@ static int cpufreq_parse_governor(char *str_governor, unsigned int *policy,  		t = __find_governor(str_governor);  		if (t == NULL) { -			char *name = kasprintf(GFP_KERNEL, "cpufreq_%s", -								str_governor); +			int ret; -			if (name) { -				int ret; +			mutex_unlock(&cpufreq_governor_mutex); +			ret = request_module("cpufreq_%s", str_governor); +			mutex_lock(&cpufreq_governor_mutex); -				mutex_unlock(&cpufreq_governor_mutex); -				ret = request_module("%s", name); -				mutex_lock(&cpufreq_governor_mutex); - -				if (ret == 0) -					t = __find_governor(str_governor); -			} - -			kfree(name); +			if (ret == 0) +				t = __find_governor(str_governor);  		}  		if (t != NULL) {  |