Hi Peter, On Tue, Jun 7, 2022 at 1:42 AM Peter Collingbourne <pcc@xxxxxxxxxx> wrote: > > On Thu, May 19, 2022 at 7:40 AM Will Deacon <will@xxxxxxxxxx> wrote: > > > > From: Fuad Tabba <tabba@xxxxxxxxxx> > > > > Return an error (-EINVAL) if trying to enable MTE on a protected > > vm. > > > > Signed-off-by: Fuad Tabba <tabba@xxxxxxxxxx> > > --- > > arch/arm64/kvm/arm.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c > > index 10e036bf06e3..8a1b4ba1dfa7 100644 > > --- a/arch/arm64/kvm/arm.c > > +++ b/arch/arm64/kvm/arm.c > > @@ -90,7 +90,9 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, > > break; > > case KVM_CAP_ARM_MTE: > > mutex_lock(&kvm->lock); > > - if (!system_supports_mte() || kvm->created_vcpus) { > > + if (!system_supports_mte() || > > + kvm_vm_is_protected(kvm) || > > Should this check be added to kvm_vm_ioctl_check_extension() as well? No need. kvm_vm_ioctl_check_extension() calls pkvm_check_extension() for protected vms, which functions as an allow list rather than a block list. Cheers, /fuad > Peter