mirror of https://gitee.com/openkylin/linux.git
KVM: Move vcpu_load to arch-specific kvm_arch_vcpu_ioctl_translate
Move vcpu_load() and vcpu_put() into the architecture specific implementations of kvm_arch_vcpu_ioctl_translate(). Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
e83dff5edf
commit
1da5b61dac
|
@ -1791,7 +1791,9 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
|||
{
|
||||
int r;
|
||||
|
||||
vcpu_load(vcpu);
|
||||
r = kvmppc_core_vcpu_translate(vcpu, tr);
|
||||
vcpu_put(vcpu);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
@ -7684,6 +7684,8 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
|||
gpa_t gpa;
|
||||
int idx;
|
||||
|
||||
vcpu_load(vcpu);
|
||||
|
||||
idx = srcu_read_lock(&vcpu->kvm->srcu);
|
||||
gpa = kvm_mmu_gva_to_gpa_system(vcpu, vaddr, NULL);
|
||||
srcu_read_unlock(&vcpu->kvm->srcu, idx);
|
||||
|
@ -7692,6 +7694,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
|||
tr->writeable = 1;
|
||||
tr->usermode = 0;
|
||||
|
||||
vcpu_put(vcpu);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -2658,9 +2658,7 @@ static long kvm_vcpu_ioctl(struct file *filp,
|
|||
r = -EFAULT;
|
||||
if (copy_from_user(&tr, argp, sizeof(tr)))
|
||||
goto out;
|
||||
vcpu_load(vcpu);
|
||||
r = kvm_arch_vcpu_ioctl_translate(vcpu, &tr);
|
||||
vcpu_put(vcpu);
|
||||
if (r)
|
||||
goto out;
|
||||
r = -EFAULT;
|
||||
|
|
Loading…
Reference in New Issue