Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[S390] clear_table inline assembly contraints

Tell the compile that the clear_table inline assembly writes to the
memory referenced by *s.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

+4 -1
+4 -1
arch/s390/include/asm/pgalloc.h
··· 28 28 29 29 static inline void clear_table(unsigned long *s, unsigned long val, size_t n) 30 30 { 31 + typedef struct { char _[n]; } addrtype; 32 + 31 33 *s = val; 32 34 n = (n / 256) - 1; 33 35 asm volatile( ··· 41 39 "0: mvc 256(256,%0),0(%0)\n" 42 40 " la %0,256(%0)\n" 43 41 " brct %1,0b\n" 44 - : "+a" (s), "+d" (n)); 42 + : "+a" (s), "+d" (n), "=m" (*(addrtype *) s) 43 + : "m" (*(addrtype *) s)); 45 44 } 46 45 47 46 static inline void crst_table_init(unsigned long *crst, unsigned long entry)