Index: kernel/arch/ia64/include/atomic.h
===================================================================
--- kernel/arch/ia64/include/atomic.h	(revision 925be4ecd563f177285f5d0da2d0bf42b4bb85f6)
+++ kernel/arch/ia64/include/atomic.h	(revision 76093aefd3bb77531c0e7013bb69e1546d81aab9)
@@ -53,10 +53,10 @@
 }
 
-
-static inline uint64_t test_and_set(atomic_t *val) {
+static inline uint64_t test_and_set(atomic_t *val)
+{
 	uint64_t v;
 		
 	asm volatile (
-		"movl %0 = 0x01;;\n"
+		"movl %0 = 0x1;;\n"
 		"xchg8 %0 = %1, %0;;\n"
 		: "=r" (v), "+m" (val->count)
@@ -66,4 +66,11 @@
 }
 
+static inline void atomic_lock_arch(atomic_t *val)
+{
+	do {
+		while (val->count)
+			;
+	} while (test_and_set(val));
+}
 
 static inline void atomic_inc(atomic_t *val)
