[lkml]   [2008]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patches in this message
    Subject[REGRESSION] kobject handling in cpufreq
    Hi greg,

    I encountered a regression in linux-2.6.git which prevented the system from shutting down. I found that it
    was 'waiting_for_completion' on kobj_unregister.The same thing happened when I tried to take CPUs offline.

    git-bisect pointed me to this commit :

    commit c10997f6575f476ff38442fa18fd4a0d80345f9d
    Author: Greg Kroah-Hartman <>
    Date: Thu Dec 20 08:13:05 2007 -0800

    Kobject: convert drivers/* from kobject_unregister() to kobject_put()

    In the file drivers/cpufreq/cpufreq.c, you have not replaced one occurrence of kobject_unregister with kobject_put.
    Apparently its because of the kobject_put in the subsequent line.

    @@ -1030,8 +1030,6 @@ static int __cpufreq_remove_dev (struct sys_device * sys_dev)


    - kobject_unregister(&data->kobj);

    /* we need to make sure that the underlying kobj is actually
    Now, this can be fixed by adding another kobject_put. But having two kobject_puts in consequent lines tells us that there
    should be two references to the kobject at that point. So, I believe that it is safe to remove the kobject_get
    corresponding to the existing kobject_put to fix this.

    Signed-off-by: Balaji Rao <>

    diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
    index 64926aa..2158786 100644
    --- a/drivers/cpufreq/cpufreq.c
    +++ b/drivers/cpufreq/cpufreq.c
    @@ -1004,17 +1004,6 @@ static int __cpufreq_remove_dev (struct sys_device * sys_dev)
    return 0;
    - if (!kobject_get(&data->kobj)) {
    - spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
    - cpufreq_debug_enable_ratelimit();
    - unlock_policy_rwsem_write(cpu);
    - return -EFAULT;
    - }
    -#ifdef CONFIG_SMP

    cpufreq_cpu_governor[cpu] = data->governor;
    balaji rao

     \ /
      Last update: 2008-02-08 20:29    [W:0.050 / U:5.436 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site