aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/cache.c')
-rw-r--r--arch/s390/kernel/cache.c7
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
67void show_cacheinfo(struct seq_file *m) 67void 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
87static inline enum cache_type get_cache_type(struct cache_info *ci, int level) 90static inline enum cache_type get_cache_type(struct cache_info *ci, int level)