diff options
Diffstat (limited to 'arch/s390/kernel/cache.c')
-rw-r--r-- | arch/s390/kernel/cache.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c index fe21f074cf9f..632fa06ea162 100644 --- a/arch/s390/kernel/cache.c +++ b/arch/s390/kernel/cache.c | |||
@@ -66,10 +66,12 @@ static const enum cache_type cache_type_map[] = { | |||
66 | 66 | ||
67 | void show_cacheinfo(struct seq_file *m) | 67 | void show_cacheinfo(struct seq_file *m) |
68 | { | 68 | { |
69 | int cpu = smp_processor_id(), idx; | 69 | struct cpu_cacheinfo *this_cpu_ci; |
70 | struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); | ||
71 | struct cacheinfo *cache; | 70 | struct cacheinfo *cache; |
71 | int idx; | ||
72 | 72 | ||
73 | get_online_cpus(); | ||
74 | this_cpu_ci = get_cpu_cacheinfo(cpumask_any(cpu_online_mask)); | ||
73 | for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) { | 75 | for (idx = 0; idx < this_cpu_ci->num_leaves; idx++) { |
74 | cache = this_cpu_ci->info_list + idx; | 76 | cache = this_cpu_ci->info_list + idx; |
75 | seq_printf(m, "cache%-11d: ", idx); | 77 | seq_printf(m, "cache%-11d: ", idx); |
@@ -82,6 +84,7 @@ void show_cacheinfo(struct seq_file *m) | |||
82 | seq_printf(m, "associativity=%d", cache->ways_of_associativity); | 84 | seq_printf(m, "associativity=%d", cache->ways_of_associativity); |
83 | seq_puts(m, "\n"); | 85 | seq_puts(m, "\n"); |
84 | } | 86 | } |
87 | put_online_cpus(); | ||
85 | } | 88 | } |
86 | 89 | ||
87 | static inline enum cache_type get_cache_type(struct cache_info *ci, int level) | 90 | static inline enum cache_type get_cache_type(struct cache_info *ci, int level) |