Re: 2.6.20-rc3-mm1 - rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues.patch

From: Mattia Dongili
Date: Sat Jan 06 2007 - 11:59:46 EST


On Sat, Jan 06, 2007 at 08:44:51AM -0500, Valdis.Kletnieks@xxxxxx wrote:
> On Thu, 04 Jan 2007 22:02:00 PST, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc3-mm1/
>
> One of these 3 patches:
>
> rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues.patch
> rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues-fix.patch
> ondemand-governor-restructure-the-work-callback.patch
>
> causes an oops in kref_put during early boot ("unable to handle paging
> request at 00078").
>
> Dell Latitude D820 laptop, Core2 T7200 with a 64-bit kernel.
>
> Hand-copied trace of the oops:
>
> kobject_put+0x19/0x1b
> cpufreq_cpu_put+0xd/0x1e
> cpufreq_get+0x45/0x51
> handle_cpufreq_delayed_get+0x1e/0x41
> run_workqueue+0x9c/0x14e
> worker_thread+0x0/0x145
> worker_thread+0x10e/0x145
> default_wake_function+0x0/0xf
> worker_thread+0x0/0x145
> kthread+0x8/0x10b
> schedule_tail+0x38/0xa1
> child_rip+0xa/0x12
> kthread+0x0/0x10b
> child_rip+0x0/0x12

Does the following help?

Signed-off-by: Mattia Dongili <malattia@xxxxxxxx>
---
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index a7b17ab..1112f31 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1113,14 +1113,15 @@ unsigned int cpufreq_get(unsigned int cpu)
goto out;

if (unlikely(lock_policy_rwsem_read(cpu)))
- goto out;
+ goto out_policy;

ret_freq = __cpufreq_get(cpu);

unlock_policy_rwsem_read(cpu);

-out:
+out_policy:
cpufreq_cpu_put(policy);
+out:
return (ret_freq);
}
EXPORT_SYMBOL(cpufreq_get);
--
mattia
:wq!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/