Re: [BUGFIX] cpufreq: dont BUG_ON uninitialized policy cpu

From: Dave Jones
Date: Wed Jan 13 2010 - 01:33:00 EST


On Wed, Jan 13, 2010 at 01:14:38PM +0800, Wu Fengguang wrote:
> Remove a BUG_ON which is always triggered here after commit 0b19a310eebb93:
>
> --- 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)); \

So instead of always BUG'ing, we'll always fail to get the lock ?
How can this be correct ?

This makes no sense. cpufreq_update_policy shouldn't be called without
an existing policy. Can someone send me the full trace ?

Andrew cc'd me on a revert of Thomas's last patch to this file,
but again, no trace, and I can't find the mails he refers to.

Dave

--
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/