Index: arch/ia64/include/atomic.h
===================================================================
--- arch/ia64/include/atomic.h	(revision 72f5866d024b9caad084cece4024c1293f3ba11f)
+++ arch/ia64/include/atomic.h	(revision 80d2bdbb59aff7f143abc484128e57a0c2b47e47)
@@ -32,5 +32,5 @@
 #include <arch/types.h>
 
-typedef volatile __u64 atomic_t;
+typedef struct { volatile __u64 count; } atomic_t;
 
 static inline atomic_t atomic_add(atomic_t *val, int imm)
@@ -39,7 +39,17 @@
 
 	
- 	__asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "+m" (*val) : "i" (imm));
+ 	__asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "+m" (val->count) : "i" (imm));
  
 	return v;
+}
+
+static inline void atomic_set(atomic_t *val, __u64 i)
+{
+	val->count = i;
+}
+
+static inline __u32 atomic_get(atomic_t *val)
+{
+	return val->count;
 }
 
