cpu_asid_lock needs to be a real spinlock on preempt-rt. Convert it to a raw_spinlock. No change for !RT kernels. Signed-off-by: Thomas Gleixner --- arch/arm/mm/context.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Index: linux-2.6-tip/arch/arm/mm/context.c =================================================================== --- linux-2.6-tip.orig/arch/arm/mm/context.c +++ linux-2.6-tip/arch/arm/mm/context.c @@ -14,7 +14,7 @@ #include #include -static DEFINE_SPINLOCK(cpu_asid_lock); +static DEFINE_RAW_SPINLOCK(cpu_asid_lock); unsigned int cpu_last_asid = ASID_FIRST_VERSION; /* @@ -32,7 +32,7 @@ void __new_context(struct mm_struct *mm) { unsigned int asid; - spin_lock(&cpu_asid_lock); + raw_spin_lock(&cpu_asid_lock); asid = ++cpu_last_asid; if (asid == 0) asid = cpu_last_asid = ASID_FIRST_VERSION; @@ -54,7 +54,7 @@ void __new_context(struct mm_struct *mm) dsb(); } } - spin_unlock(&cpu_asid_lock); + raw_spin_unlock(&cpu_asid_lock); cpumask_copy(mm_cpumask(mm), cpumask_of(smp_processor_id())); mm->context.id = asid;