[S390] oprofile: dont access lowcore
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 23 May 2011 08:24:49 +0000 (10:24 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 23 May 2011 08:24:32 +0000 (10:24 +0200)
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>
arch/s390/oprofile/hwsampler.c

index cb4338ccbf7bd339b3ac8101207189e92703a4dc..053caa0fd2768cd6eee4a5daa0ac54bf964e3252 100644 (file)
@@ -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);
 }