KVM: s390: convert handle_stsi()
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 1 Jan 2014 15:58:59 +0000 (16:58 +0100)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 22 Apr 2014 11:24:46 +0000 (13:24 +0200)
Convert handle_stsi() to new guest access functions.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
arch/s390/kvm/priv.c

index 44ff22007052413f94b19c1f5ed3bb17404559d6..5fb503a6c4431bd227ab11204e3d81b16491b7eb 100644 (file)
@@ -530,9 +530,10 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
                break;
        }
 
-       if (copy_to_guest_absolute(vcpu, operand2, (void *) mem, PAGE_SIZE)) {
-               rc = kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
-               goto out_exception;
+       rc = write_guest(vcpu, operand2, (void *)mem, PAGE_SIZE);
+       if (rc) {
+               rc = kvm_s390_inject_prog_cond(vcpu, rc);
+               goto out;
        }
        trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2);
        free_page(mem);
@@ -541,7 +542,7 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
        return 0;
 out_no_data:
        kvm_s390_set_psw_cc(vcpu, 3);
-out_exception:
+out:
        free_page(mem);
        return rc;
 }