From e19e558da4e707b155c577f26f9726882ae0a167 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 6 Apr 2004 18:07:22 +0100 Subject: [CPUFREQ] Stop preempt count from going negative. Broken failure path spotted by Dominik Brodowski. --- arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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(); -- cgit v1.2.3