Skip to contentSkip to conversation

Prevent usage of uninitialized variable in transmeta cpu driver

PATCH NAK Johannes Weiner 2 participants 3 messages Jul 23, 2006 – Jul 24, 2006

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Prevent usage of uninitialized variable in transmeta cpu driver

This patch fixes a gcc-`uninitialized' warning in
arch/i386/kernel/cpu/transmeta.c.

---

arch/i386/kernel/cpu/transmeta.c +3 -3
index 7214c9b..5b71071 100644
@@ -17,9 +17,9 @@ static void __init init_transmeta(struct
 
 	/* Print CMS and CPU revision */
 	max = cpuid_eax(0x80860000);
-	cpu_rev = 0;
+	cpu_rev = cpu_freq = 0;
 	if ( max >= 0x80860001 ) {
-		cpuid(0x80860001, &dummy, &cpu_rev, &cpu_freq, &cpu_flags); 
+		cpuid(0x80860001, &dummy, &cpu_rev, &cpu_freq, &cpu_flags);
 		if (cpu_rev != 0x02000000) {
 			printk(KERN_INFO "CPU: Processor revision %u.%u.%u.%u, %u MHz\n",
 				(cpu_rev >> 24) & 0xff,
@@ -72,7 +72,7 @@ static void __init init_transmeta(struct
 	wrmsr(0x80860004, ~0, uk);
 	c->x86_capability[0] = cpuid_edx(0x00000001);
 	wrmsr(0x80860004, cap_mask, uk);
-	
+
 	/* If we can run i686 user-space code, call us an i686 */
 #define USER686 (X86_FEATURE_TSC|X86_FEATURE_CX8|X86_FEATURE_CMOV)
         if ( c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686 )
#1 lore raw

Johannes Weiner napsal(a):

Quoted 2 lines

This patch fixes a gcc-`uninitialized' warning in
arch/i386/kernel/cpu/transmeta.c.

NACK.

Gcc bug, don't hide it (I don't really know, why cpu_rev is zeroed).

[Post only whitespace changes. And note that such changes should be in separated patches.]

Quoted 25 lines

---

------------------------------------------------------------------------

arch/i386/kernel/cpu/transmeta.c +2 -2
index 7214c9b..5b71071 100644
@@ -17,9 +17,9 @@ static void __init init_transmeta(struct
 
 	/* Print CMS and CPU revision */
 	max = cpuid_eax(0x80860000);
-	cpu_rev = 0;
+	cpu_rev = cpu_freq = 0;
 	if ( max >= 0x80860001 ) {
-		cpuid(0x80860001, &dummy, &cpu_rev, &cpu_freq, &cpu_flags); 
+		cpuid(0x80860001, &dummy, &cpu_rev, &cpu_freq, &cpu_flags);
 		if (cpu_rev != 0x02000000) {
 			printk(KERN_INFO "CPU: Processor revision %u.%u.%u.%u, %u MHz\n",
 				(cpu_rev >> 24) & 0xff,

arch/i386/kernel/cpu/transmeta.c static void __init init_transmeta(struct · line 78

Quoted 8 lines
arch/i386/kernel/cpu/transmeta.c +1 -1
@@ -72,7 +72,7 @@ static void __init init_transmeta(struct
 	wrmsr(0x80860004, ~0, uk);
 	c->x86_capability[0] = cpuid_edx(0x00000001);
 	wrmsr(0x80860004, cap_mask, uk);
-	
+
 	/* If we can run i686 user-space code, call us an i686 */
 #define USER686 (X86_FEATURE_TSC|X86_FEATURE_CX8|X86_FEATURE_CMOV)
         if ( c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686 )

regards,

Signature · 4 lines
<a href="http://www.fi.muni.cz/~xslaby/">Jiri Slaby</a>
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E
#2 lore raw

Hi,

Quoted 7 lines · Jiri Slaby

Johannes Weiner napsal(a):

Quoted 2 lines

This patch fixes a gcc-`uninitialized' warning in
arch/i386/kernel/cpu/transmeta.c.

NACK.

Gcc bug, don't hide it (I don't really know, why cpu_rev is zeroed).

Ok. This GCC release I'm running (4.1.1) shows really a lot more of them then the prior. Should have wondered and thought about it before ;)

Hannes

Signature · 4 lines
#include <stdio.h>
char *love[] = { "this", "language" };
#define gimme(s) #s, 0[s], 0[s+1]
int main(void) { printf("%s %s %s\n", gimme(love)); return 0; }