Hi Marc, On Wed, Oct 13, 2021 at 1:04 PM Marc Zyngier <maz@xxxxxxxxxx> wrote: > > This is an update on Fuad's series[1]. > > Instead of going going back and forth over a series that has seen a > fair few versions, I've opted for simply writing a set of fixes on > top, hopefully greatly simplifying the handling of most registers, and > moving things around to suit my own taste (just because I can). > > I won't be reposting the initial 11 patches, which is why this series > in is reply to patch 11. Thanks for this series. I've reviewed, built it, and tested it with a dummy protected VM (since we don't have proper protected VMs yet), which initializes some of the relevant protected VMs metadata as well as its control registers. So fwiw: Reviewed-by: Fuad Tabba <tabba@xxxxxxxxxx> And to whatever extent possible at this stage: Tested-by: Fuad Tabba <tabba@xxxxxxxxxx> Cheers, /fuad > Thanks, > > M. > > [1] https://lore.kernel.org/r/20211010145636.1950948-1-tabba@xxxxxxxxxx > > Fuad Tabba (8): > KVM: arm64: Pass struct kvm to per-EC handlers > KVM: arm64: Add missing field descriptor for MDCR_EL2 > KVM: arm64: Simplify masking out MTE in feature id reg > KVM: arm64: Add handlers for protected VM System Registers > KVM: arm64: Initialize trap registers for protected VMs > KVM: arm64: Move sanitized copies of CPU features > KVM: arm64: Trap access to pVM restricted features > KVM: arm64: Handle protected guests at 32 bits > > Marc Zyngier (14): > KVM: arm64: Move __get_fault_info() and co into their own include file > KVM: arm64: Don't include switch.h into nvhe/kvm-main.c > KVM: arm64: Move early handlers to per-EC handlers > KVM: arm64: Fix early exit ptrauth handling > KVM: arm64: pkvm: Use a single function to expose all id-regs > KVM: arm64: pkvm: Make the ERR/ERX*_EL1 registers RAZ/WI > KVM: arm64: pkvm: Drop AArch32-specific registers > KVM: arm64: pkvm: Drop sysregs that should never be routed to the host > KVM: arm64: pkvm: Handle GICv3 traps as required > KVM: arm64: pkvm: Preserve pending SError on exit from AArch32 > KVM: arm64: pkvm: Consolidate include files > KVM: arm64: pkvm: Move kvm_handle_pvm_restricted around > KVM: arm64: pkvm: Pass vpcu instead of kvm to > kvm_get_exit_handler_array() > KVM: arm64: pkvm: Give priority to standard traps over pvm handling > > arch/arm64/include/asm/kvm_arm.h | 1 + > arch/arm64/include/asm/kvm_asm.h | 1 + > arch/arm64/include/asm/kvm_host.h | 2 + > arch/arm64/include/asm/kvm_hyp.h | 5 + > arch/arm64/kvm/arm.c | 13 + > arch/arm64/kvm/hyp/include/hyp/fault.h | 75 +++ > arch/arm64/kvm/hyp/include/hyp/switch.h | 235 ++++----- > .../arm64/kvm/hyp/include/nvhe/fixed_config.h | 200 +++++++ > .../arm64/kvm/hyp/include/nvhe/trap_handler.h | 2 + > arch/arm64/kvm/hyp/nvhe/Makefile | 2 +- > arch/arm64/kvm/hyp/nvhe/hyp-main.c | 11 +- > arch/arm64/kvm/hyp/nvhe/mem_protect.c | 8 +- > arch/arm64/kvm/hyp/nvhe/pkvm.c | 185 +++++++ > arch/arm64/kvm/hyp/nvhe/setup.c | 3 + > arch/arm64/kvm/hyp/nvhe/switch.c | 99 ++++ > arch/arm64/kvm/hyp/nvhe/sys_regs.c | 487 ++++++++++++++++++ > arch/arm64/kvm/hyp/vhe/switch.c | 16 + > arch/arm64/kvm/sys_regs.c | 10 +- > 18 files changed, 1200 insertions(+), 155 deletions(-) > create mode 100644 arch/arm64/kvm/hyp/include/hyp/fault.h > create mode 100644 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h > create mode 100644 arch/arm64/kvm/hyp/nvhe/pkvm.c > create mode 100644 arch/arm64/kvm/hyp/nvhe/sys_regs.c > > -- > 2.30.2 >