aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2011-05-23 04:24:49 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-05-23 04:24:32 -0400
commit5f420c5bd15c948302aafd3341903bc06895f1bb (patch)
tree9cf1f1e25ca63d35cfe28255e1ff395d06d5ab17 /arch/s390
parentfcdd65b0e7bbbd6aef9be2f20e7c238759cf0b41 (diff)
[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>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/oprofile/hwsampler.c11
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)
675static void hws_ext_handler(unsigned int ext_int_code, 675static void hws_ext_handler(unsigned int ext_int_code,
676 unsigned int param32, unsigned long param64) 676 unsigned int param32, unsigned long param64)
677{ 677{
678 int cpu;
679 struct hws_cpu_buffer *cb; 678 struct hws_cpu_buffer *cb;
680 679
681 kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++; 680 kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++;
682 cpu = smp_processor_id(); 681 cb = &__get_cpu_var(sampler_cpu_buffer);
683 cb = &per_cpu(sampler_cpu_buffer, cpu); 682 atomic_xchg(&cb->ext_params, atomic_read(&cb->ext_params) | param32);
684
685 atomic_xchg(
686 &cb->ext_params,
687 atomic_read(&cb->ext_params)
688 | S390_lowcore.ext_params);
689
690 if (hws_wq) 683 if (hws_wq)
691 queue_work(hws_wq, &cb->worker); 684 queue_work(hws_wq, &cb->worker);
692} 685}