Commit 0207ef8a authored by David Mosberger's avatar David Mosberger

ia64: Based on patch by Rohit Seth: Use "hint @pause" in more places.

parent b594f96f
...@@ -624,8 +624,13 @@ ia64_set_lrr0 (unsigned long val) ...@@ -624,8 +624,13 @@ ia64_set_lrr0 (unsigned long val)
asm volatile ("mov cr.lrr0=%0;; srlz.d" :: "r"(val) : "memory"); asm volatile ("mov cr.lrr0=%0;; srlz.d" :: "r"(val) : "memory");
} }
#define cpu_relax() barrier() static inline void
ia64_hint_pause (void)
{
asm volatile ("hint @pause" ::: "memory");
}
#define cpu_relax() ia64_hint_pause()
static inline void static inline void
ia64_set_lrr1 (unsigned long val) ia64_set_lrr1 (unsigned long val)
......
...@@ -133,8 +133,7 @@ do { \ ...@@ -133,8 +133,7 @@ do { \
while (unlikely(ia64_fetchadd(1, (int *) __read_lock_ptr, "acq") < 0)) { \ while (unlikely(ia64_fetchadd(1, (int *) __read_lock_ptr, "acq") < 0)) { \
ia64_fetchadd(-1, (int *) __read_lock_ptr, "rel"); \ ia64_fetchadd(-1, (int *) __read_lock_ptr, "rel"); \
while (*(volatile int *)__read_lock_ptr < 0) \ while (*(volatile int *)__read_lock_ptr < 0) \
barrier(); \ cpu_relax(); \
\
} \ } \
} while (0) } while (0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment