There may be contents left in the upper 32 bits of executed_addr; hence we should use a 64-bit load to make sure they are overwritten. Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx> --- s390x/spec_ex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/s390x/spec_ex.c b/s390x/spec_ex.c index e3dd85dcb153..72b942576369 100644 --- a/s390x/spec_ex.c +++ b/s390x/spec_ex.c @@ -142,7 +142,7 @@ static int psw_odd_address(void) " larl %%r1,0f\n" " stg %%r1,%[fixup_addr]\n" " lpswe %[odd_psw]\n" - "0: lr %[executed_addr],%%r0\n" + "0: lgr %[executed_addr],%%r0\n" : [fixup_addr] "=&T" (fixup_psw.addr), [executed_addr] "=d" (executed_addr) : [odd_psw] "Q" (odd) -- 2.41.0