Thread (32 messages) 32 messages, 3 authors, 2021-07-14

Re: [PATCH v2 08/13] KVM: arm64: Guest exit handlers for nVHE hyp

From: Fuad Tabba <hidden>
Date: 2021-07-01 15:01:26
Also in: kvm, kvmarm

Hi Will,

On Thu, Jul 1, 2021 at 2:48 PM Will Deacon [off-list ref] wrote:
On Tue, Jun 15, 2021 at 02:39:45PM +0100, Fuad Tabba wrote:
quoted
Add an array of pointers to handlers for various trap reasons in
nVHE code.

The current code selects how to fixup a guest on exit based on a
series of if/else statements. Future patches will also require
different handling for guest exists. Create an array of handlers
to consolidate them.

No functional change intended as the array isn't populated yet.

Signed-off-by: Fuad Tabba <redacted>
---
 arch/arm64/kvm/hyp/include/hyp/switch.h | 19 ++++++++++++++
 arch/arm64/kvm/hyp/nvhe/switch.c        | 35 +++++++++++++++++++++++++
 2 files changed, 54 insertions(+)
diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h
index e4a2f295a394..f5d3d1da0aec 100644
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@ -405,6 +405,18 @@ static inline bool __hyp_handle_ptrauth(struct kvm_vcpu *vcpu)
      return true;
 }

+typedef int (*exit_handle_fn)(struct kvm_vcpu *);
+
+exit_handle_fn kvm_get_nvhe_exit_handler(struct kvm_vcpu *vcpu);
+
+static exit_handle_fn kvm_get_hyp_exit_handler(struct kvm_vcpu *vcpu)
+{
+     if (is_nvhe_hyp_code())
+             return kvm_get_nvhe_exit_handler(vcpu);
+     else
+             return NULL;
+}
nit: might be a bit tidier with a ternary if (?:).
Sure thing.

Thanks,
/fuad
But either way:

Acked-by: Will Deacon <will@kernel.org>

Will
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help