--- drivers/cpufreq/cpufreq.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) Index: linux-2.6.31-rc3/drivers/cpufreq/cpufreq.c =================================================================== --- linux-2.6.31-rc3.orig/drivers/cpufreq/cpufreq.c 2009-07-14 15:46:42.000000000 +0800 +++ linux-2.6.31-rc3/drivers/cpufreq/cpufreq.c 2009-07-22 10:24:49.000000000 +0800 @@ -1250,6 +1250,8 @@ struct cpufreq_policy *cpu_policy; dprintk("suspending cpu %u\n", cpu); + printk(KERN_DEBUG "cpufreq driver name is %s, irq disabled %d\n", + cpufreq_driver->name, irqs_disabled()); if (!cpu_online(cpu)) return 0; @@ -1258,7 +1260,7 @@ * we need to grab the correct cpu policy, as to check * whether we really run on this CPU. */ - + printk(KERN_DEBUG "irq_disabled %d in %d\n", irqs_disabled(), __LINE__); cpu_policy = cpufreq_cpu_get(cpu); if (!cpu_policy) return -EINVAL; @@ -1276,6 +1278,8 @@ } } + printk(KERN_DEBUG "irq_disabled %d in %d after driver suspend\n", + irqs_disabled(), __LINE__); if (cpufreq_driver->flags & CPUFREQ_CONST_LOOPS) goto out; @@ -1287,6 +1291,8 @@ "frequency is what timing core thinks it is.\n"); goto out; } + printk(KERN_DEBUG "irq_disabled %d in %d after driver get\n", + irqs_disabled(), __LINE__); if (unlikely(cur_freq != cpu_policy->cur)) { struct cpufreq_freqs freqs; @@ -1307,8 +1313,11 @@ cpu_policy->cur = cur_freq; } + printk(KERN_DEBUG "irq_disabled %d in %d before cpu_put\n", + irqs_disabled(), __LINE__); out: cpufreq_cpu_put(cpu_policy); + printk(KERN_DEBUG "irq_disabled %d in %d after cpu_put\n", irqs_disabled(), __LINE__); return ret; }