forked from luck/tmp_suning_uos_patched
KVM: s390: convert handle_store_cpu_address()
Convert handle_store_cpu_address() 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>
This commit is contained in:
parent
f748f4a7ec
commit
8b96de0e03
@ -134,23 +134,26 @@ static int handle_store_prefix(struct kvm_vcpu *vcpu)
|
||||
|
||||
static int handle_store_cpu_address(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u64 useraddr;
|
||||
u16 vcpu_id = vcpu->vcpu_id;
|
||||
u64 ga;
|
||||
int rc;
|
||||
|
||||
vcpu->stat.instruction_stap++;
|
||||
|
||||
if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
|
||||
return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
|
||||
|
||||
useraddr = kvm_s390_get_base_disp_s(vcpu);
|
||||
ga = kvm_s390_get_base_disp_s(vcpu);
|
||||
|
||||
if (useraddr & 1)
|
||||
if (ga & 1)
|
||||
return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
|
||||
|
||||
if (put_guest(vcpu, vcpu->vcpu_id, (u16 __user *)useraddr))
|
||||
return kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
|
||||
rc = write_guest(vcpu, ga, &vcpu_id, sizeof(vcpu_id));
|
||||
if (rc)
|
||||
return kvm_s390_inject_prog_cond(vcpu, rc);
|
||||
|
||||
VCPU_EVENT(vcpu, 5, "storing cpu address to %llx", useraddr);
|
||||
trace_kvm_s390_handle_stap(vcpu, useraddr);
|
||||
VCPU_EVENT(vcpu, 5, "storing cpu address to %llx", ga);
|
||||
trace_kvm_s390_handle_stap(vcpu, ga);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user