2013-01-19 19:29:08 +00:00
|
|
|
From de03cc4ce37d8a719d88eb91b0da91af788740c8 Mon Sep 17 00:00:00 2001
|
2011-11-20 00:01:55 +00:00
|
|
|
From: Ingo Molnar <mingo@elte.hu>
|
|
|
|
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
2013-01-06 22:44:12 +00:00
|
|
|
Subject: [PATCH 037/293] generic: Use raw local irq variant for generic
|
2012-05-12 14:20:55 +00:00
|
|
|
cmpxchg
|
2011-11-20 00:01:55 +00:00
|
|
|
|
|
|
|
No point in tracing those.
|
|
|
|
|
|
|
|
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
|
|
---
|
|
|
|
include/asm-generic/cmpxchg-local.h | 8 ++++----
|
|
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
|
2012-05-12 14:20:55 +00:00
|
|
|
diff --git a/include/asm-generic/cmpxchg-local.h b/include/asm-generic/cmpxchg-local.h
|
|
|
|
index 2533fdd..d8d4c89 100644
|
|
|
|
--- a/include/asm-generic/cmpxchg-local.h
|
|
|
|
+++ b/include/asm-generic/cmpxchg-local.h
|
|
|
|
@@ -21,7 +21,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
|
2011-11-20 00:01:55 +00:00
|
|
|
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)
|
2012-05-12 14:20:55 +00:00
|
|
|
@@ -42,7 +42,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
|
2011-11-20 00:01:55 +00:00
|
|
|
default:
|
|
|
|
wrong_size_cmpxchg(ptr);
|
|
|
|
}
|
|
|
|
- local_irq_restore(flags);
|
|
|
|
+ raw_local_irq_restore(flags);
|
|
|
|
return prev;
|
|
|
|
}
|
|
|
|
|
2012-05-12 14:20:55 +00:00
|
|
|
@@ -55,11 +55,11 @@ static inline u64 __cmpxchg64_local_generic(volatile void *ptr,
|
2011-11-20 00:01:55 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|