]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
s390: correct some inline assembly constraints
authorVasily Gorbik <gor@linux.vnet.ibm.com>
Mon, 13 Nov 2017 15:37:33 +0000 (16:37 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 14 Nov 2017 10:01:51 +0000 (11:01 +0100)
Inline assembly code changed in this patch should really use "Q"
constraint "Memory reference without index register and with short
displacement". The kernel does not compile with kasan support enabled
otherwise (due to stack instrumentation).

Signed-off-by: Vasily Gorbik <gor@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/include/asm/cpu_mf.h
arch/s390/include/asm/lowcore.h
arch/s390/include/asm/processor.h

index 05480e4cc5cabdab4e8bcc5006b8d0691b4bfef7..7364130a29c885d6b8bacc4097e4a4a0c5d19491 100644 (file)
@@ -167,7 +167,7 @@ static inline int lcctl(u64 ctl)
                "       .insn   s,0xb2840000,%1\n"
                "       ipm     %0\n"
                "       srl     %0,28\n"
-               : "=d" (cc) : "m" (ctl) : "cc");
+               : "=d" (cc) : "Q" (ctl) : "cc");
        return cc;
 }
 
index 2306fa17f6cdb6644fb951c96493cafd4f1e3c50..ec6592e8ba36e20228b710d3474ca825dc9a264a 100644 (file)
@@ -188,14 +188,14 @@ extern struct lowcore *lowcore_ptr[];
 
 static inline void set_prefix(__u32 address)
 {
-       asm volatile("spx %0" : : "m" (address) : "memory");
+       asm volatile("spx %0" : : "Q" (address) : "memory");
 }
 
 static inline __u32 store_prefix(void)
 {
        __u32 address;
 
-       asm volatile("stpx %0" : "=m" (address));
+       asm volatile("stpx %0" : "=Q" (address));
        return address;
 }
 
index 709351bce80ef4ddc7502461008241b8647cb3de..bfbfad4822897246bebc2e0214981de37b926a9d 100644 (file)
@@ -245,7 +245,7 @@ static inline unsigned short stap(void)
 {
        unsigned short cpu_address;
 
-       asm volatile("stap %0" : "=m" (cpu_address));
+       asm volatile("stap %0" : "=Q" (cpu_address));
        return cpu_address;
 }