summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/irq.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2008-05-15 16:52:39 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-05-15 16:52:41 +0200
commit8dd79cb1051723496bbdcea2247e49567cedb3ac (patch)
tree3cd9bd7b2dacb725e5b38b78494d6685dc527681 /arch/s390/kernel/irq.c
parent[S390] smp: __smp_call_function_map vs cpu_online_map fix. (diff)
downloadlinux-8dd79cb1051723496bbdcea2247e49567cedb3ac.tar.xz
linux-8dd79cb1051723496bbdcea2247e49567cedb3ac.zip
[S390] show_interrupts: prevent cpu hotplug when walking cpu_online_map.
Surround all the code withing show_interrupts() with get/put_online_cpus() to prevent strange results wrt cpu hotplug. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to '')
-rw-r--r--arch/s390/kernel/irq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index c59a86dca584..e7c5bfb7c755 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -25,6 +25,7 @@ int show_interrupts(struct seq_file *p, void *v)
static const char *intrclass_names[] = { "EXT", "I/O", };
int i = *(loff_t *) v, j;
+ get_online_cpus();
if (i == 0) {
seq_puts(p, " ");
for_each_online_cpu(j)
@@ -43,7 +44,7 @@ int show_interrupts(struct seq_file *p, void *v)
seq_putc(p, '\n');
}
-
+ put_online_cpus();
return 0;
}