From: Marc Zyngier <maz@kernel.org>
To: Fuad Tabba <tabba@google.com>
Cc: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
oliver.upton@linux.dev, will@kernel.org, joey.gouly@arm.com,
suzuki.poulose@arm.com, yuzenghui@huawei.com,
catalin.marinas@arm.com, vladimir.murzin@arm.com
Subject: Re: [PATCH v6 8/9] KVM: arm64: Check whether a VM IOCTL is allowed in pKVM
Date: Thu, 15 Jan 2026 18:03:27 +0000 [thread overview]
Message-ID: <86bjiuda8g.wl-maz@kernel.org> (raw)
In-Reply-To: <CA+EHjTwX-kDg24LMHCyMVP3Xpdpv55WyP2AxeWXa5CKk1yyudQ@mail.gmail.com>
On Thu, 15 Jan 2026 16:14:39 +0000,
Fuad Tabba <tabba@google.com> wrote:
>
> On Thu, 15 Jan 2026 at 16:05, Marc Zyngier <maz@kernel.org> wrote:
> >
> > On Thu, 15 Jan 2026 15:19:48 +0000,
> > Fuad Tabba <tabba@google.com> wrote:
> > >
> > > Hi Marc,
> > >
> > > On Thu, 15 Jan 2026 at 15:03, Marc Zyngier <maz@kernel.org> wrote:
> > > >
> > > > On Thu, 11 Dec 2025 10:47:08 +0000,
> > > > Fuad Tabba <tabba@google.com> wrote:
> > > > >
> > > > > Certain VM IOCTLs are tied to specific VM features. Since pKVM does not
> > > > > support all features, restrict which IOCTLs are allowed depending on
> > > > > whether the associated feature is supported.
> > > > >
> > > > > Use the existing VM capability check as the source of truth to whether
> > > > > an IOCTL is allowed for a particular VM by mapping the IOCTLs with their
> > > > > associated capabilities.
> > > > >
> > > > > Suggested-by: Oliver Upton <oupton@kernel.org>
> > > > > Signed-off-by: Fuad Tabba <tabba@google.com>
> > > > > ---
> > > > > arch/arm64/include/asm/kvm_pkvm.h | 21 +++++++++++++++++++++
> > > > > arch/arm64/kvm/arm.c | 3 +++
> > > > > 2 files changed, 24 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm64/include/asm/kvm_pkvm.h b/arch/arm64/include/asm/kvm_pkvm.h
> > > > > index 5b564576160d..0fa8c84816fd 100644
> > > > > --- a/arch/arm64/include/asm/kvm_pkvm.h
> > > > > +++ b/arch/arm64/include/asm/kvm_pkvm.h
> > > > > @@ -9,6 +9,7 @@
> > > > > #include <linux/arm_ffa.h>
> > > > > #include <linux/memblock.h>
> > > > > #include <linux/scatterlist.h>
> > > > > +#include <asm/kvm_host.h>
> > > > > #include <asm/kvm_pgtable.h>
> > > > >
> > > > > /* Maximum number of VMs that can co-exist under pKVM. */
> > > > > @@ -43,6 +44,7 @@ static inline bool kvm_pkvm_ext_allowed(struct kvm *kvm, long ext)
> > > > > case KVM_CAP_ARM_SVE:
> > > > > case KVM_CAP_ARM_PTRAUTH_ADDRESS:
> > > > > case KVM_CAP_ARM_PTRAUTH_GENERIC:
> > > > > + case KVM_CAP_ARM_BASIC:
> > > >
> > > > Can we instead rely on an existing VM capability? I'm not overly keen
> > > > exposing something new to userspace (KVM_CAP_ARM_BASIC) for something
> > > > that really is KVM's own internal problems.
> > > >
> > > > Looking at the history, a bunch of things have always been present:
> > > > KVM_CAP_NR_VCPUS, for example. You could even #define
> > > > KVM_CAP_ARM_BASIC to that if you want.
> > >
> > > I wasn't too crazy about that either. I like the idea of defining it
> > > as an alias of KVM_CAP_NR_VCPUS. I'll do that when I respin.
> >
> > I've done something [1]. If that works for you, let me know and I'll
> > just merge that.
>
> That works for the previous patch (7/9), which is where you've made
> the change. But since the alias is defined in `arm.c` it wouldn't work
> in this patch (8/9), because the function kvm_pkvm_ext_allowed() is
> defined in `asm/kvm_pkvm.h`.
I dropped it from patch 8/9 for the reason below.
> Defining the alias in `asm/kvm_pkvm.h`
> or in `asm/kvm_host.h` should solve this, since both files are visible
> in arm.c (and in kvm_pkvm.h in both cases).
Nope. The compiler spots that this is the same value twice in the
switch, and compile fails. I only kept it as syntactic sugar in arm.c,
but I could otherwise drop it entirely.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2026-01-15 18:03 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-11 10:47 [PATCH v6 0/9] KVM: arm64: Fixes for guest CPU feature trapping and enabling Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 1/9] KVM: arm64: Fix Trace Buffer trapping for protected VMs Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 2/9] KVM: arm64: Fix Trace Buffer trap polarity " Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 3/9] KVM: arm64: Fix MTE flag initialization " Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 4/9] KVM: arm64: Introduce helper to calculate fault IPA offset Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 5/9] KVM: arm64: Include VM type when checking VM capabilities in pKVM Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 6/9] KVM: arm64: Do not allow KVM_CAP_ARM_MTE for any guest " Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 7/9] KVM: arm64: Track KVM IOCTLs and their associated KVM caps Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 8/9] KVM: arm64: Check whether a VM IOCTL is allowed in pKVM Fuad Tabba
2026-01-15 15:03 ` Marc Zyngier
2026-01-15 15:19 ` Fuad Tabba
2026-01-15 16:05 ` Marc Zyngier
2026-01-15 16:14 ` Fuad Tabba
2026-01-15 18:03 ` Marc Zyngier [this message]
2026-01-15 19:15 ` Fuad Tabba
2025-12-11 10:47 ` [PATCH v6 9/9] KVM: arm64: Prevent host from managing timer offsets for protected VMs Fuad Tabba
2026-01-15 21:55 ` [PATCH v6 0/9] KVM: arm64: Fixes for guest CPU feature trapping and enabling Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86bjiuda8g.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=oliver.upton@linux.dev \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.com \
--cc=vladimir.murzin@arm.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.