lkml.org 
[lkml]   [2007]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 2.6.20-rc3-mm1 - rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues.patch
    On Sat, Jan 06, 2007 at 08:44:51AM -0500, Valdis.Kletnieks@vt.edu 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@linux.it>
    ---
    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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-01-06 18:01    [W:0.023 / U:30.420 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site