s390/cacheinfo: fix shared cpu masks
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 11 Feb 2015 13:50:10 +0000 (14:50 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 12 Feb 2015 08:37:24 +0000 (09:37 +0100)
When testing Sudeep Holla's cache info rework I didn't realize that the
shared cpu masks are broken (all have the same cpu set).
Let's fix this.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/cache.c

index 632fa06ea162c567923044ddf4e3ced0339d24bd..f06a2a509ad241ed6b66c561c1b921efad98d758 100644 (file)
@@ -111,10 +111,9 @@ static inline unsigned long ecag(int ai, int li, int ti)
 }
 
 static void ci_leaf_init(struct cacheinfo *this_leaf, int private,
-                        enum cache_type type, unsigned int level)
+                        enum cache_type type, unsigned int level, int cpu)
 {
        int ti, num_sets;
-       int cpu = smp_processor_id();
 
        if (type == CACHE_TYPE_INST)
                ti = CACHE_TI_INSTRUCTION;
@@ -178,10 +177,10 @@ int populate_cache_leaves(unsigned int cpu)
                pvt = (ct.ci[level].scope == CACHE_SCOPE_PRIVATE) ? 1 : 0;
                ctype = get_cache_type(&ct.ci[0], level);
                if (ctype == CACHE_TYPE_SEPARATE) {
-                       ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_DATA, level);
-                       ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_INST, level);
+                       ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_DATA, level, cpu);
+                       ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_INST, level, cpu);
                } else {
-                       ci_leaf_init(this_leaf++, pvt, ctype, level);
+                       ci_leaf_init(this_leaf++, pvt, ctype, level, cpu);
                }
        }
        return 0;