diff -u linux-2.6.32.45/arch/sparc/include/asm/atomic_64.h linux-2.6.32.45-new/arch/sparc/include/asm/atomic_64.h
--- linux-2.6.32.45/arch/sparc/include/asm/atomic_64.h	2011-07-13 22:22:56.000000000 -0400
+++ linux-2.6.32.45-new/arch/sparc/include/asm/atomic_64.h	2011-08-18 22:44:03.000000000 -0400
@@ -123,9 +123,16 @@
 #define atomic64_add_negative(i, v) (atomic64_add_ret(i, v) < 0)
 
 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
-#define atomic_cmpxchg_unchecked(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
+static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
+{
+	return cmpxchg(&v->counter, old, new);
+}
 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
 #define atomic_xchg_unchecked(v, new) (xchg(&((v)->counter), new))
+static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
+{
+	return xchg(&v->counter, new);
+}
 
 static inline int atomic_add_unless(atomic_t *v, int a, int u)
 {
@@ -158,6 +165,10 @@
 #define atomic64_cmpxchg(v, o, n) \
 	((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
+static inline long atomic64_xchg_unchecked(const atomic64_unchecked_t *v, long new)
+{
+	return xchg(&v->counter, new);
+}
 
 static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
 {
