[patch] intel_cacheinfo: remove MAX_CACHE_LEAVES limit

From: Siddha, Suresh B
Date: Mon Sep 19 2005 - 14:15:02 EST


Remove the MAX_CACHE_LEAVES limit from the routine which calculates the
number of cache levels using cpuid(4)

Signed-off-by: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>

--- linux-2.6.13/arch/i386/kernel/cpu/intel_cacheinfo.c 2005-08-28 16:41:01.000000000 -0700
+++ linux-2.6.13~/arch/i386/kernel/cpu/intel_cacheinfo.c 2005-09-19 10:37:58.329447344 -0700
@@ -117,7 +117,6 @@ struct _cpuid4_info {
cpumask_t shared_cpu_map;
};

-#define MAX_CACHE_LEAVES 4
static unsigned short num_cache_leaves;

static int __devinit cpuid4_cache_lookup(int index, struct _cpuid4_info *this_leaf)
@@ -144,20 +143,15 @@ static int __init find_num_cache_leaves(
{
unsigned int eax, ebx, ecx, edx;
union _cpuid4_leaf_eax cache_eax;
- int i;
- int retval;
+ int i = -1;

- retval = MAX_CACHE_LEAVES;
- /* Do cpuid(4) loop to find out num_cache_leaves */
- for (i = 0; i < MAX_CACHE_LEAVES; i++) {
+ do {
+ ++i;
+ /* Do cpuid(4) loop to find out num_cache_leaves */
cpuid_count(4, i, &eax, &ebx, &ecx, &edx);
cache_eax.full = eax;
- if (cache_eax.split.type == CACHE_TYPE_NULL) {
- retval = i;
- break;
- }
- }
- return retval;
+ } while (cache_eax.split.type != CACHE_TYPE_NULL);
+ return i;
}

unsigned int __devinit init_intel_cacheinfo(struct cpuinfo_x86 *c)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/