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:	Sat, 05 May 2007 19:48:48 +0200
From:	Rafał Bilski <rafalbilski@...eria.pl>
To:	Jan Engelhardt <jengelh@...ux01.gwdg.de>
Cc:	Wander Winkelhorst <w.winkelhorst@...il.com>,
	David Johnson <dj@...id-web.co.uk>,
	linux-kernel@...r.kernel.org, cpufreq@...ts.linux.org.uk
Subject: Re: cpufreq longhaul locks up

I found one line which wasn't were it should be. Probably this will not 
fix Your problem with powersave governor, but it is a bit related. 
Looks like Longhaul isn't skipping frequency transtition when it is asked 
to set f which is already set. Now after first transition it will not 
try to set same frequency again. Second part contains some magic 
because I don't have CN400 datasheet. It is NDA protected :-( Should 
print You one byte in hex and will try to set one register. I don't 
know if anything will change but it is worth testing.

Fingers crossed
Rafał

---
 arch/i386/kernel/cpu/cpufreq/longhaul.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c
index 2b030d6..5548e5b 100644
--- a/arch/i386/kernel/cpu/cpufreq/longhaul.c
+++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c
@@ -88,6 +88,7 @@ static int clock_ratio[32];
 static int eblcr_table[32];
 static int longhaul_version;
 static struct cpufreq_frequency_table *longhaul_table;
+static unsigned int old_ratio = -1;
 
 #ifdef CONFIG_CPU_FREQ_DEBUG
 static char speedbuffer[8];
@@ -252,7 +253,6 @@ static void longhaul_setstate(unsigned int clock_ratio_index)
 {
 	int speed, mult;
 	struct cpufreq_freqs freqs;
-	static unsigned int old_ratio=-1;
 	unsigned long flags;
 	unsigned int pic1_mask, pic2_mask;
 
@@ -603,7 +603,12 @@ static int enable_arbiter_disable(void)
 		/* Find CN400 V-Link host bridge */
 		if (dev == NULL)
 			dev = pci_find_device(PCI_VENDOR_ID_VIA, 0x7259, NULL);
-
+		if (dev != NULL) {
+			pci_read_config_byte(dev, 0x47, &pci_cmd);
+			printk(KERN_INFO PFX "%#02x\n", pci_cmd);
+			pci_cmd |= 0xf;
+			pci_write_config_byte(dev, 0x47, pci_cmd);
+		}
 	}
 	if (dev != NULL) {
 		/* Enable access to port 0x22 */
-- 



----------------------------------------------------------------------
Po meczu.....kurde...:)
>>> http://link.interia.pl/f1a72

-
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