diff options
-rw-r--r-- | arch/x86/kernel/cpu/intel_cacheinfo.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c index 8b4507b8469b..1b889860eb73 100644 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c | |||
@@ -352,8 +352,8 @@ unsigned int __cpuinit init_intel_cacheinfo(struct cpuinfo_x86 *c) | |||
352 | */ | 352 | */ |
353 | if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1) { | 353 | if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1) { |
354 | /* supports eax=2 call */ | 354 | /* supports eax=2 call */ |
355 | int i, j, n; | 355 | int j, n; |
356 | int regs[4]; | 356 | unsigned int regs[4]; |
357 | unsigned char *dp = (unsigned char *)regs; | 357 | unsigned char *dp = (unsigned char *)regs; |
358 | int only_trace = 0; | 358 | int only_trace = 0; |
359 | 359 | ||
@@ -368,7 +368,7 @@ unsigned int __cpuinit init_intel_cacheinfo(struct cpuinfo_x86 *c) | |||
368 | 368 | ||
369 | /* If bit 31 is set, this is an unknown format */ | 369 | /* If bit 31 is set, this is an unknown format */ |
370 | for ( j = 0 ; j < 3 ; j++ ) { | 370 | for ( j = 0 ; j < 3 ; j++ ) { |
371 | if ( regs[j] < 0 ) regs[j] = 0; | 371 | if (regs[j] & (1 << 31)) regs[j] = 0; |
372 | } | 372 | } |
373 | 373 | ||
374 | /* Byte 0 is level count, not a descriptor */ | 374 | /* Byte 0 is level count, not a descriptor */ |