lkml.org 
[lkml]   [2010]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[BUGFIX] cpufreq: dont BUG_ON uninitialized policy cpu
    Remove a BUG_ON which is always triggered here after commit 0b19a310eebb93:

    [ 6.879063] kernel BUG at drivers/cpufreq/cpufreq.c:88!
    [ 6.879381] invalid opcode: 0000 [#1] SMP
    [ 6.879711] last sysfs file:
    [ 6.879918] CPU 3
    [ 6.880114] Pid: 1, comm: swapper Not tainted 2.6.33-rc3-next-20100112 #51 DX58SO/
    [ 6.880611] RIP: 0010:[<ffffffff81577729>] [<ffffffff81577729>] lock_policy_rwsem_write+0x69/0x90
    ...
    [ 6.885630] Process swapper (pid: 1, threadinfo ffff8800bbbdc000, task ffff8800bbbe0000)
    ...
    [ 6.888135] Call Trace:
    [ 6.888318] [<ffffffff8157851a>] cpufreq_update_policy+0x2a/0x110
    ...
    [ 6.892586] [<ffffffff81c981e6>] cpufreq_stats_init+0x83/0xb5

    CC: Thomas Renninger <trenn@suse.de>
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    ---
    drivers/cpufreq/cpufreq.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- linux-mm.orig/drivers/cpufreq/cpufreq.c 2010-01-13 13:06:03.000000000 +0800
    +++ linux-mm/drivers/cpufreq/cpufreq.c 2010-01-13 13:06:57.000000000 +0800
    @@ -72,7 +72,8 @@ int lock_policy_rwsem_##mode \
    (int cpu) \
    { \
    int policy_cpu = per_cpu(cpufreq_policy_cpu, cpu); \
    - BUG_ON(policy_cpu == -1); \
    + if (policy_cpu == -1) \
    + return -1; \
    down_##mode(&per_cpu(cpu_policy_rwsem, policy_cpu)); \
    if (unlikely(!cpu_online(cpu))) { \
    up_##mode(&per_cpu(cpu_policy_rwsem, policy_cpu)); \

    \
     
     \ /
      Last update: 2010-01-13 06:17    [W:0.023 / U:0.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site