summaryrefslogtreecommitdiffstats
path: root/drivers/s390/s390mach.h
diff options
context:
space:
mode:
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>2006-02-01 12:06:40 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-01 17:53:24 +0100
commit46d0d2c811c8e9dd5cffdc3a5c03d988eb5a2996 (patch)
tree5926ec595630cd42b49eadc15cfb74c9c81811ae /drivers/s390/s390mach.h
parent[PATCH] s390: Fix modalias for ccw devices (diff)
downloadlinux-46d0d2c811c8e9dd5cffdc3a5c03d988eb5a2996.tar.xz
linux-46d0d2c811c8e9dd5cffdc3a5c03d988eb5a2996.zip
[PATCH] s390: Add missing memory constraint to stcrw()
Add missing memory constraint to stcrw() inline assembly. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to '')
-rw-r--r--drivers/s390/s390mach.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/s390/s390mach.h b/drivers/s390/s390mach.h
index d9ea7ed2e46e..7abb42a09ae2 100644
--- a/drivers/s390/s390mach.h
+++ b/drivers/s390/s390mach.h
@@ -90,15 +90,16 @@ struct crw {
static inline int stcrw(struct crw *pcrw )
{
- int ccode;
+ int ccode;
- __asm__ __volatile__(
- "STCRW 0(%1)\n\t"
- "IPM %0\n\t"
- "SRL %0,28\n\t"
- : "=d" (ccode) : "a" (pcrw)
- : "cc", "1" );
- return ccode;
+ __asm__ __volatile__(
+ "stcrw 0(%2)\n\t"
+ "ipm %0\n\t"
+ "srl %0,28\n\t"
+ : "=d" (ccode), "=m" (*pcrw)
+ : "a" (pcrw)
+ : "cc" );
+ return ccode;
}
#endif /* __s390mach */