diff options
| -rw-r--r-- | arch/s390/kernel/cache.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c index 632fa06ea162..f06a2a509ad2 100644 --- a/arch/s390/kernel/cache.c +++ b/arch/s390/kernel/cache.c | |||
| @@ -111,10 +111,9 @@ static inline unsigned long ecag(int ai, int li, int ti) | |||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | static void ci_leaf_init(struct cacheinfo *this_leaf, int private, | 113 | static void ci_leaf_init(struct cacheinfo *this_leaf, int private, |
| 114 | enum cache_type type, unsigned int level) | 114 | enum cache_type type, unsigned int level, int cpu) |
| 115 | { | 115 | { |
| 116 | int ti, num_sets; | 116 | int ti, num_sets; |
| 117 | int cpu = smp_processor_id(); | ||
| 118 | 117 | ||
| 119 | if (type == CACHE_TYPE_INST) | 118 | if (type == CACHE_TYPE_INST) |
| 120 | ti = CACHE_TI_INSTRUCTION; | 119 | ti = CACHE_TI_INSTRUCTION; |
| @@ -178,10 +177,10 @@ int populate_cache_leaves(unsigned int cpu) | |||
| 178 | pvt = (ct.ci[level].scope == CACHE_SCOPE_PRIVATE) ? 1 : 0; | 177 | pvt = (ct.ci[level].scope == CACHE_SCOPE_PRIVATE) ? 1 : 0; |
| 179 | ctype = get_cache_type(&ct.ci[0], level); | 178 | ctype = get_cache_type(&ct.ci[0], level); |
| 180 | if (ctype == CACHE_TYPE_SEPARATE) { | 179 | if (ctype == CACHE_TYPE_SEPARATE) { |
| 181 | ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_DATA, level); | 180 | ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_DATA, level, cpu); |
| 182 | ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_INST, level); | 181 | ci_leaf_init(this_leaf++, pvt, CACHE_TYPE_INST, level, cpu); |
| 183 | } else { | 182 | } else { |
| 184 | ci_leaf_init(this_leaf++, pvt, ctype, level); | 183 | ci_leaf_init(this_leaf++, pvt, ctype, level, cpu); |
| 185 | } | 184 | } |
| 186 | } | 185 | } |
| 187 | return 0; | 186 | return 0; |
