ANDROID: KVM: arm64: Add 'host_smc_handler' to kvm_iommu_ops

IOMMU drivers need to intercept power management SMCs between the host
and EL3. Add a hook to hyp's 'handle_host_smc'.

Test: builds, boots
Bug: 190463801
Signed-off-by: David Brazdil <dbrazdil@google.com>
Change-Id: Ief42370ac371f6b3b87a0d46c00acfffece47052
This commit is contained in:
David Brazdil
2021-06-29 19:14:45 +00:00
parent 79775d0225
commit d2efcdcb2b
2 changed files with 3 additions and 0 deletions

View File

@@ -126,6 +126,7 @@ extern u64 kvm_nvhe_sym(id_aa64mmfr2_el1_sys_val);
struct kvm_iommu_ops {
int (*init)(void);
bool (*host_smc_handler)(struct kvm_cpu_context *host_ctxt);
};
extern struct kvm_iommu_ops kvm_iommu_ops;

View File

@@ -246,6 +246,8 @@ static void handle_host_smc(struct kvm_cpu_context *host_ctxt)
bool handled;
handled = kvm_host_psci_handler(host_ctxt);
if (!handled && kvm_iommu_ops.host_smc_handler)
handled = kvm_iommu_ops.host_smc_handler(host_ctxt);
if (!handled)
default_host_smc_handler(host_ctxt);