diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-07-25 10:18:34 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-09-13 05:12:05 -0400 |
commit | 2d21a29fb62f142b8a62496700d8d82a6a8fd783 (patch) | |
tree | 78d83ed47a72b1e31ecadb3f77e91f865b407b48 /arch/x86/oprofile/nmi_int.c | |
parent | 6b2c1800f1d3a608af952cfbd57f8f1a71c5d9b4 (diff) |
locking, oprofile: Annotate oprofilefs lock as raw
The oprofilefs_lock can be taken in atomic context (in profiling
interrupts) and therefore cannot cannot be preempted on -rt -
annotate it.
In mainline this change documents the low level nature of
the lock - otherwise there's no functional difference. Lockdep
and Sparse checking will work as usual.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/oprofile/nmi_int.c')
-rw-r--r-- | arch/x86/oprofile/nmi_int.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 68894fdc034b..96646b3aeca8 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
@@ -355,10 +355,10 @@ static void nmi_cpu_setup(void *dummy) | |||
355 | int cpu = smp_processor_id(); | 355 | int cpu = smp_processor_id(); |
356 | struct op_msrs *msrs = &per_cpu(cpu_msrs, cpu); | 356 | struct op_msrs *msrs = &per_cpu(cpu_msrs, cpu); |
357 | nmi_cpu_save_registers(msrs); | 357 | nmi_cpu_save_registers(msrs); |
358 | spin_lock(&oprofilefs_lock); | 358 | raw_spin_lock(&oprofilefs_lock); |
359 | model->setup_ctrs(model, msrs); | 359 | model->setup_ctrs(model, msrs); |
360 | nmi_cpu_setup_mux(cpu, msrs); | 360 | nmi_cpu_setup_mux(cpu, msrs); |
361 | spin_unlock(&oprofilefs_lock); | 361 | raw_spin_unlock(&oprofilefs_lock); |
362 | per_cpu(saved_lvtpc, cpu) = apic_read(APIC_LVTPC); | 362 | per_cpu(saved_lvtpc, cpu) = apic_read(APIC_LVTPC); |
363 | apic_write(APIC_LVTPC, APIC_DM_NMI); | 363 | apic_write(APIC_LVTPC, APIC_DM_NMI); |
364 | } | 364 | } |