aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kernel/processor.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c
index eeb651b48db3..753623bde8ec 100644
--- a/arch/s390/kernel/processor.c
+++ b/arch/s390/kernel/processor.c
@@ -13,7 +13,7 @@
13#include <linux/smp.h> 13#include <linux/smp.h>
14#include <linux/seq_file.h> 14#include <linux/seq_file.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16 16#include <linux/cpu.h>
17#include <asm/elf.h> 17#include <asm/elf.h>
18#include <asm/lowcore.h> 18#include <asm/lowcore.h>
19#include <asm/param.h> 19#include <asm/param.h>
@@ -47,7 +47,6 @@ static int show_cpuinfo(struct seq_file *m, void *v)
47 int i; 47 int i;
48 48
49 s390_adjust_jiffies(); 49 s390_adjust_jiffies();
50 preempt_disable();
51 if (!n) { 50 if (!n) {
52 seq_printf(m, "vendor_id : IBM/S390\n" 51 seq_printf(m, "vendor_id : IBM/S390\n"
53 "# processors : %i\n" 52 "# processors : %i\n"
@@ -60,7 +59,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
60 seq_printf(m, "%s ", hwcap_str[i]); 59 seq_printf(m, "%s ", hwcap_str[i]);
61 seq_puts(m, "\n"); 60 seq_puts(m, "\n");
62 } 61 }
63 62 get_online_cpus();
64 if (cpu_online(n)) { 63 if (cpu_online(n)) {
65 struct cpuid *id = &per_cpu(cpu_id, n); 64 struct cpuid *id = &per_cpu(cpu_id, n);
66 seq_printf(m, "processor %li: " 65 seq_printf(m, "processor %li: "
@@ -69,7 +68,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
69 "machine = %04X\n", 68 "machine = %04X\n",
70 n, id->version, id->ident, id->machine); 69 n, id->version, id->ident, id->machine);
71 } 70 }
72 preempt_enable(); 71 put_online_cpus();
73 return 0; 72 return 0;
74} 73}
75 74