All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] arm64: KVM: Allow direct function calls on VHE
@ 2019-01-09 13:54 ` Marc Zyngier
  0 siblings, 0 replies; 22+ messages in thread
From: Marc Zyngier @ 2019-01-09 13:54 UTC (permalink / raw)
  To: kvm, kvmarm, linux-arm-kernel

It recently appeared that the nasty hack we use to call a HYP function
on a non-VHE system has an interesting side effect on VHE: We wrap any
such call into a hypercall, losing any form of type checking between
the caller and the callee.

This isn't a big deal if you can guarantee to write code that is
always 100% correct, but it appears that I'm not you.

In order to restore some sanity, let's use the following property: On
a VHE system, it is always possible to call any function directly as
they live in the same address space. We can thus always emit a direct
call, and use a static key to flip from one to the other. As a bonus,
this also sanitizes !VHE systems as we always generate code for noth
revisions of the architecture.

Marc Zyngier (3):
  arm/arm64: KVM: Introduce kvm_call_hyp_ret()
  arm64: KVM: Allow for direct call of HYP functions when using VHE
  arm64: KVM: Drop VHE-specific HYP call stub

 arch/arm/include/asm/kvm_host.h   |  3 +++
 arch/arm64/include/asm/kvm_host.h | 31 ++++++++++++++++++++++++++++++-
 arch/arm64/kvm/debug.c            |  2 +-
 arch/arm64/kvm/hyp.S              |  3 ---
 arch/arm64/kvm/hyp/hyp-entry.S    | 12 ------------
 virt/kvm/arm/arm.c                |  2 +-
 virt/kvm/arm/vgic/vgic-v3.c       |  4 ++--
 7 files changed, 37 insertions(+), 20 deletions(-)

-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2019-01-09 16:04 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-09 13:54 [PATCH 0/3] arm64: KVM: Allow direct function calls on VHE Marc Zyngier
2019-01-09 13:54 ` Marc Zyngier
2019-01-09 13:54 ` [PATCH 1/3] arm/arm64: KVM: Introduce kvm_call_hyp_ret() Marc Zyngier
2019-01-09 13:54   ` Marc Zyngier
2019-01-09 13:54 ` [PATCH 2/3] arm64: KVM: Allow for direct call of HYP functions when using VHE Marc Zyngier
2019-01-09 13:54   ` Marc Zyngier
2019-01-09 14:24   ` Andrew Murray
2019-01-09 14:24     ` Andrew Murray
2019-01-09 14:45     ` Marc Zyngier
2019-01-09 14:45       ` Marc Zyngier
2019-01-09 14:51       ` Julien Thierry
2019-01-09 14:51         ` Julien Thierry
2019-01-09 14:52         ` Julien Thierry
2019-01-09 14:52           ` Julien Thierry
2019-01-09 16:01         ` Marc Zyngier
2019-01-09 16:01           ` Marc Zyngier
2019-01-09 16:04           ` Andrew Murray
2019-01-09 16:04             ` Andrew Murray
2019-01-09 13:54 ` [PATCH 3/3] arm64: KVM: Drop VHE-specific HYP call stub Marc Zyngier
2019-01-09 13:54   ` Marc Zyngier
2019-01-09 14:11 ` [PATCH 0/3] arm64: KVM: Allow direct function calls on VHE Andrew Murray
2019-01-09 14:11   ` Andrew Murray

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.