diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2011-05-23 10:24:49 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-05-23 10:24:32 +0200 |
commit | 5f420c5bd15c948302aafd3341903bc06895f1bb (patch) | |
tree | 9cf1f1e25ca63d35cfe28255e1ff395d06d5ab17 | |
parent | fcdd65b0e7bbbd6aef9be2f20e7c238759cf0b41 (diff) | |
download | blackbird-op-linux-5f420c5bd15c948302aafd3341903bc06895f1bb.tar.gz blackbird-op-linux-5f420c5bd15c948302aafd3341903bc06895f1bb.zip |
[S390] oprofile: dont access lowcore
The external interrupt parameter is passed as function call parameter.
No need to access lowcore.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r-- | arch/s390/oprofile/hwsampler.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/arch/s390/oprofile/hwsampler.c b/arch/s390/oprofile/hwsampler.c index cb4338ccbf7b..053caa0fd276 100644 --- a/arch/s390/oprofile/hwsampler.c +++ b/arch/s390/oprofile/hwsampler.c @@ -675,18 +675,11 @@ int hwsampler_activate(unsigned int cpu) static void hws_ext_handler(unsigned int ext_int_code, unsigned int param32, unsigned long param64) { - int cpu; struct hws_cpu_buffer *cb; kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++; - cpu = smp_processor_id(); - cb = &per_cpu(sampler_cpu_buffer, cpu); - - atomic_xchg( - &cb->ext_params, - atomic_read(&cb->ext_params) - | S390_lowcore.ext_params); - + cb = &__get_cpu_var(sampler_cpu_buffer); + atomic_xchg(&cb->ext_params, atomic_read(&cb->ext_params) | param32); if (hws_wq) queue_work(hws_wq, &cb->worker); } |