[S390] Fix __ctl_load/__ctl_store inline assembly constraints

__ctl_load/__ctl_store are called with either an array of unsigned long or
a single unsigned long value. Add an address operator to the "m"/"=m"
contraints to make them work for unsigned long arguments as well.

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

+4 -4
+4 -4
include/asm-s390/system.h
··· 315 315 asm volatile( \ 316 316 " lctlg %1,%2,0(%0)\n" \ 317 317 : : "a" (&array), "i" (low), "i" (high), \ 318 - "m" (*(addrtype *)(array))); \ 318 + "m" (*(addrtype *)(&array))); \ 319 319 }) 320 320 321 321 #define __ctl_store(array, low, high) ({ \ 322 322 typedef struct { char _[sizeof(array)]; } addrtype; \ 323 323 asm volatile( \ 324 324 " stctg %2,%3,0(%1)\n" \ 325 - : "=m" (*(addrtype *)(array)) \ 325 + : "=m" (*(addrtype *)(&array)) \ 326 326 : "a" (&array), "i" (low), "i" (high)); \ 327 327 }) 328 328 ··· 333 333 asm volatile( \ 334 334 " lctl %1,%2,0(%0)\n" \ 335 335 : : "a" (&array), "i" (low), "i" (high), \ 336 - "m" (*(addrtype *)(array))); \ 336 + "m" (*(addrtype *)(&array))); \ 337 337 }) 338 338 339 339 #define __ctl_store(array, low, high) ({ \ 340 340 typedef struct { char _[sizeof(array)]; } addrtype; \ 341 341 asm volatile( \ 342 342 " stctl %2,%3,0(%1)\n" \ 343 - : "=m" (*(addrtype *)(array)) \ 343 + : "=m" (*(addrtype *)(&array)) \ 344 344 : "a" (&array), "i" (low), "i" (high)); \ 345 345 }) 346 346