Commit a2522c80 authored by Halil Pasic's avatar Halil Pasic Committed by Heiko Carstens
Browse files

s390/ap: fix status returned by ap_qact()



Since commit 159491f3 ("s390/ap: rework assembler functions to use
unions for in/out register variables") the  function ap_qact() tries to
grab the status from the wrong part of the register. Thus we always end
up with zeros. Which is wrong, among others, because we detect failures
via status.response_code.

Signed-off-by: default avatarHalil Pasic <pasic@linux.ibm.com>
Reported-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
Fixes: 159491f3 ("s390/ap: rework assembler functions to use unions for in/out register variables")
Reviewed-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 394740d7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -293,7 +293,10 @@ static inline struct ap_queue_status ap_qact(ap_qid_t qid, int ifbit,
	unsigned long reg0 = qid | (5UL << 24) | ((ifbit & 0x01) << 22);
	union {
		unsigned long value;
		struct {
			u32 _pad;
			struct ap_queue_status status;
		};
	} reg1;
	unsigned long reg2;