KVM: s390: fix 24 bit psw handling in lpsw/lpswe handler
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 25 Mar 2013 16:22:49 +0000 (17:22 +0100)
committerGleb Natapov <gleb@redhat.com>
Tue, 2 Apr 2013 13:14:20 +0000 (16:14 +0300)
When checking for validity the lpsw/lpswe handler check that only
the lower 20 bits instead of 24 bits have a non-zero value.
There handling valid psws as invalid ones.
Fix the 24 bit psw mask.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
arch/s390/kvm/priv.c

index 7db2ad076f313ce28840a9fa1d75d84999c59441..7b397b37d11aa8f1c85226563cadcd18688e4135 100644 (file)
@@ -255,7 +255,7 @@ static void handle_new_psw(struct kvm_vcpu *vcpu)
 
 #define PSW_MASK_ADDR_MODE (PSW_MASK_EA | PSW_MASK_BA)
 #define PSW_MASK_UNASSIGNED 0xb80800fe7fffffffUL
-#define PSW_ADDR_24 0x00000000000fffffUL
+#define PSW_ADDR_24 0x0000000000ffffffUL
 #define PSW_ADDR_31 0x000000007fffffffUL
 
 int kvm_s390_handle_lpsw(struct kvm_vcpu *vcpu)