[PATCH 1/1]: arm: _syscallX() macros must mark "memory" as clobbered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Markus Gutschke <[email protected]>

While other platforms (including x86) have been fixed to mark memory as clobbered by _syscallX()'s, this bug has not yet been fixed for ARM. This patch adds the missing constraints and applies to version 2.6.15.6.

The bug can be tracked at http://bugzilla.kernel.org/show_bug.cgi?id=6205

Signed-off-by: Markus Gutschke <[email protected]>

---
--- include/asm-arm/unistd.h.orig	2006-03-05 11:07:54.000000000 -0800
+++ include/asm-arm/unistd.h	2006-03-09 15:10:22.000000000 -0800
@@ -415,7 +415,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0)							\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }
@@ -430,7 +430,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0),"r" (__r1) 					\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }
@@ -447,7 +447,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0),"r" (__r1),"r" (__r2)				\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }
@@ -465,7 +465,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3)			\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }
@@ -484,7 +484,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3),"r" (__r4)	\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }
@@ -503,7 +503,7 @@
   __syscall(name)							\
 	: "=r" (__res_r0)						\
 	: "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3), "r" (__r4),"r" (__r5)		\
-	: "lr");							\
+	: "lr", "memory");						\
   __res = __res_r0;							\
   __syscall_return(type,__res);						\
 }

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux