summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2004-04-06 18:07:22 +0100
committerDave Jones <davej@delerium.codemonkey.org.uk>2004-04-06 18:07:22 +0100
commite19e558da4e707b155c577f26f9726882ae0a167 (patch)
treed430ca74b7715636954e8ab1e983cf6f9c894d72
parent17660f347b89006dd1db68bee90e7c08b0c817f7 (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.c3
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();