generic: Use raw local irq variant for generic cmpxchg
authorIngo Molnar <mingo@elte.hu>
Fri, 3 Jul 2009 13:29:30 +0000 (08:29 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 19 Feb 2013 07:43:37 +0000 (08:43 +0100)
The interrupt disabled region is extremly tiny and therefor not
latency relevant. Avoid cluttering the traces with those pointless
entries.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/asm-generic/cmpxchg-local.h

index 2533fdd..d8d4c89 100644 (file)
@@ -21,7 +21,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
        if (size == 8 && sizeof(unsigned long) != 8)
                wrong_size_cmpxchg(ptr);
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        switch (size) {
        case 1: prev = *(u8 *)ptr;
                if (prev == old)
@@ -42,7 +42,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
        default:
                wrong_size_cmpxchg(ptr);
        }
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
        return prev;
 }
 
@@ -55,11 +55,11 @@ static inline u64 __cmpxchg64_local_generic(volatile void *ptr,
        u64 prev;
        unsigned long flags;
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        prev = *(u64 *)ptr;
        if (prev == old)
                *(u64 *)ptr = new;
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
        return prev;
 }