Commit 3c45a07b authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik
Browse files

s390/diag: use register pair instead of register asm

parent 75c89a2b
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -141,16 +141,15 @@ EXPORT_SYMBOL(diag14);

static inline int __diag204(unsigned long *subcode, unsigned long size, void *addr)
{
	register unsigned long _subcode asm("0") = *subcode;
	register unsigned long _size asm("1") = size;
	union register_pair rp = { .even = *subcode, .odd = size };

	asm volatile(
		"	diag	%2,%0,0x204\n"
		"	diag	%[addr],%[rp],0x204\n"
		"0:	nopr	%%r7\n"
		EX_TABLE(0b,0b)
		: "+d" (_subcode), "+d" (_size) : "d" (addr) : "memory");
	*subcode = _subcode;
	return _size;
		: [rp] "+&d" (rp.pair) : [addr] "d" (addr) : "memory");
	*subcode = rp.even;
	return rp.odd;
}

int diag204(unsigned long subcode, unsigned long size, void *addr)