View | Details | Raw Unified | Return to bug 119836
Collapse All | Expand All

(-)linux-2.6.16/drivers/cpufreq/cpufreq.c (-6 / +21 lines)
Lines 413-431 static ssize_t store_scaling_governor (s Link Here
413
	char	str_governor[16];
413
	char	str_governor[16];
414
	struct cpufreq_policy new_policy;
414
	struct cpufreq_policy new_policy;
415
415
416
	mutex_lock(&policy->lock);
416
	ret = cpufreq_get_policy(&new_policy, policy->cpu);
417
	ret = cpufreq_get_policy(&new_policy, policy->cpu);
417
	if (ret)
418
	if (ret)
418
		return ret;
419
		goto error;
419
420
420
	ret = sscanf (buf, "%15s", str_governor);
421
	ret = sscanf (buf, "%15s", str_governor);
421
	if (ret != 1)
422
	if (ret != 1){
422
		return -EINVAL;
423
		ret =  -EINVAL;
424
		goto error;
425
	}
423
426
424
	if (cpufreq_parse_governor(str_governor, &new_policy.policy, &new_policy.governor))
427
	if (cpufreq_parse_governor(str_governor, &new_policy.policy, &new_policy.governor)){
425
		return -EINVAL;
428
		ret =  -EINVAL;
429
		goto error;
430
	}
431
	/* Do not use cpufreq_set_policy here or the user_policy.max
432
	   will be wrongly overridden */
433
	ret = __cpufreq_set_policy(policy, &new_policy);
434
435
	policy->user_policy.policy = policy->policy;
436
	policy->user_policy.governor = policy->governor;
437
	mutex_unlock(&policy->lock);
438
	cpufreq_cpu_put(policy);
426
439
427
	ret = cpufreq_set_policy(&new_policy);
428
	return ret ? ret : count;
440
	return ret ? ret : count;
441
 error:
442
	mutex_unlock(&policy->lock);
443
	return ret;
429
}
444
}
430
445
431
/**
446
/**

Return to bug 119836