[ARM] 3810/1: switch atomic helpers over to raw_local_irq_{save,restore}
authorLennert Buytenhek <buytenh@wantstofly.org>
Sat, 16 Sep 2006 09:47:18 +0000 (10:47 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 25 Sep 2006 09:25:24 +0000 (10:25 +0100)
Now that we have raw_* variants of local_irq_$FOO(), switch the atomic
helpers over to use those raw_* variants.  This is necessary when using
lockdep on pre-ARMv6 hardware, as lockdep uses atomic_t counters in the
trace_hardirqs_off() path.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/atomic.h

index 4b0ce3e..ea88aa6 100644 (file)
@@ -128,10 +128,10 @@ static inline int atomic_add_return(int i, atomic_t *v)
        unsigned long flags;
        int val;
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        val = v->counter;
        v->counter = val += i;
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
 
        return val;
 }
@@ -141,10 +141,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
        unsigned long flags;
        int val;
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        val = v->counter;
        v->counter = val -= i;
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
 
        return val;
 }
@@ -154,11 +154,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
        int ret;
        unsigned long flags;
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        ret = v->counter;
        if (likely(ret == old))
                v->counter = new;
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
 
        return ret;
 }
@@ -167,9 +167,9 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
 {
        unsigned long flags;
 
-       local_irq_save(flags);
+       raw_local_irq_save(flags);
        *addr &= ~mask;
-       local_irq_restore(flags);
+       raw_local_irq_restore(flags);
 }
 
 #endif /* __LINUX_ARM_ARCH__ */