Revert "ANDROID: KVM: arm64: Do not pass host struct pointers to pkvm_host_donate_guest()"

This reverts commit 579e21a96c.

Bug: 233587962
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: If7ccfaea098fa2abcc48b96f392ed24cd7b79f3d
This commit is contained in:
Will Deacon
2022-07-07 15:49:11 +01:00
parent 497c7db99e
commit 37fca1139e
2 changed files with 6 additions and 7 deletions

View File

@@ -727,21 +727,20 @@ static void handle___pkvm_host_donate_guest(struct kvm_cpu_context *host_ctxt)
{
DECLARE_REG(u64, pfn, host_ctxt, 1);
DECLARE_REG(u64, gfn, host_ctxt, 2);
struct kvm_vcpu *host_vcpu;
DECLARE_REG(struct kvm_vcpu *, vcpu, host_ctxt, 3);
struct pkvm_loaded_state *state;
int ret = -EINVAL;
if (!is_protected_kvm_enabled())
goto out;
vcpu = kern_hyp_va(vcpu);
state = this_cpu_ptr(&loaded_state);
if (!state->vcpu)
goto out;
host_vcpu = state->vcpu->arch.pkvm.host_vcpu;
/* Topup shadow memcache with the host's */
ret = pkvm_refill_memcache(state->vcpu, host_vcpu);
ret = pkvm_refill_memcache(state->vcpu, vcpu);
if (!ret) {
if (state->is_protected)
ret = __pkvm_host_donate_guest(pfn, gfn, state->vcpu);

View File

@@ -1143,12 +1143,12 @@ static int sanitise_mte_tags(struct kvm *kvm, kvm_pfn_t pfn,
return 0;
}
static int pkvm_host_donate_guest(u64 pfn, u64 gfn)
static int pkvm_host_donate_guest(u64 pfn, u64 gfn, struct kvm_vcpu *vcpu)
{
struct arm_smccc_res res;
arm_smccc_1_1_hvc(KVM_HOST_SMCCC_FUNC(__pkvm_host_donate_guest),
pfn, gfn, &res);
pfn, gfn, vcpu, &res);
WARN_ON(res.a0 != SMCCC_RET_SUCCESS);
/*
@@ -1200,7 +1200,7 @@ static int pkvm_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
spin_lock(&kvm->mmu_lock);
pfn = page_to_pfn(page);
ret = pkvm_host_donate_guest(pfn, fault_ipa >> PAGE_SHIFT);
ret = pkvm_host_donate_guest(pfn, fault_ipa >> PAGE_SHIFT, vcpu);
if (ret) {
if (ret == -EAGAIN)
ret = 0;