lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 13 Jan 2010 13:14:38 +0800
From:	Wu Fengguang <fengguang.wu@...el.com>
To:	Dave Jones <davej@...hat.com>
Cc:	Thomas Renninger <trenn@...e.de>,
	LKML <linux-kernel@...r.kernel.org>
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@...e.de>
Signed-off-by: Wu Fengguang <fengguang.wu@...el.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));	\
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ