[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#468149: linux-source-2.6.22: longrun cpufreq module reports false min freq



Package: linux-source-2.6.22
Version: 2.6.22-6
Severity: normal
Tags: patch

The longrun cpufreq module reports a false minimum frequency 3MHz on
300-600MHz Crusoe processor.  This may be due to a calculation bug 
in the module.

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable'), (100, 'testing')
Architecture: i386 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.22-3-amd64
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)

Versions of packages linux-source-2.6.22 depends on:
ii  binutils                      2.17-3     The GNU assembler, linker and bina
ii  bzip2                         1.0.3-6    high-quality block-sorting file co

Versions of packages linux-source-2.6.22 recommends:
ii  gcc                    4:4.1.1-15        The GNU C compiler
ii  libc6-dev [libc-dev]   2.3.6.ds1-13etch4 GNU C Library: Development Librari
ii  make                   3.81-2            The GNU version of the "make" util

-- no debconf information

--- linux-source-2.6.22/arch/i386/kernel/cpu/cpufreq/longrun.c	2007-07-09 08:32:17.000000000 +0900
+++ linux-crusoe/arch/i386/kernel/cpu/cpufreq/longrun.c	2008-02-27 19:52:06.691016015 +0900
@@ -245,7 +245,7 @@
 	if ((ecx > 95) || (ecx == 0) || (eax < ebx))
 		return -EIO;
 
-	edx = (eax - ebx) / (100 - ecx);
+	edx = ((eax - ebx) * 100) / (100 - ecx);
 	*low_freq = edx * 1000; /* back to kHz */
 
 	dprintk("low frequency is %u kHz\n", *low_freq);



Reply to: