Index: arch/amd64/include/atomic.h
===================================================================
--- arch/amd64/include/atomic.h	(revision 8fa86b7dbc6cbc818e46883ae1a33d1cc1955682)
+++ arch/amd64/include/atomic.h	(revision 8abbcc9858b56f6fbc9af504791bd35090d5573d)
@@ -57,5 +57,5 @@
 	__asm__ volatile (
 		"lock xaddq %1, %0\n"
-		: "=m" (val->count) : "r" (r)
+		: "=m" (val->count), "+r" (r)
 	);
 
@@ -69,5 +69,5 @@
 	__asm__ volatile (
 		"lock xaddq %1, %0\n"
-		: "=m" (val->count) : "r" (r)
+		: "=m" (val->count), "+r" (r)
 	);
 	
Index: arch/ia32/include/atomic.h
===================================================================
--- arch/ia32/include/atomic.h	(revision 8fa86b7dbc6cbc818e46883ae1a33d1cc1955682)
+++ arch/ia32/include/atomic.h	(revision 8abbcc9858b56f6fbc9af504791bd35090d5573d)
@@ -57,5 +57,5 @@
 	__asm__ volatile (
 		"lock xaddl %1, %0\n"
-		: "=m" (val->count) : "r" (r)
+		: "=m" (val->count), "+r" (r)
 	);
 
@@ -69,5 +69,5 @@
 	__asm__ volatile (
 		"lock xaddl %1, %0\n"
-		: "=m" (val->count) : "r"(r)
+		: "=m" (val->count), "+r"(r)
 	);
 	
