diff options
| author | Dave Jones <davej@redhat.com> | 2004-04-06 18:07:22 +0100 |
|---|---|---|
| committer | Dave Jones <davej@delerium.codemonkey.org.uk> | 2004-04-06 18:07:22 +0100 |
| commit | e19e558da4e707b155c577f26f9726882ae0a167 (patch) | |
| tree | d430ca74b7715636954e8ab1e983cf6f9c894d72 | |
| parent | 17660f347b89006dd1db68bee90e7c08b0c817f7 (diff) | |
[CPUFREQ] Stop preempt count from going negative.
Broken failure path spotted by Dominik Brodowski.
| -rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c index ef0a231ce785..aa387c4b46eb 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c @@ -848,7 +848,7 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi if (smp_processor_id() != pol->cpu) { printk(KERN_ERR "limiting to cpu %u failed\n", pol->cpu); - goto err_out; + goto sched_out; } /* from this point, do not exit without restoring preempt and cpu */ @@ -892,6 +892,7 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi err_out: preempt_enable_no_resched(); +sched_out: set_cpus_allowed(current, oldmask); schedule(); |
