diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-05-15 16:52:39 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-05-15 16:52:41 +0200 |
commit | 8dd79cb1051723496bbdcea2247e49567cedb3ac (patch) | |
tree | 3cd9bd7b2dacb725e5b38b78494d6685dc527681 /arch/s390 | |
parent | [S390] smp: __smp_call_function_map vs cpu_online_map fix. (diff) | |
download | linux-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 'arch/s390')
-rw-r--r-- | arch/s390/kernel/irq.c | 3 |
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; } |