From: Cornelia Huck <cohuck@redhat.com>
To: Jing Zhang <jingzhangos@google.com>, KVM <kvm@vger.kernel.org>,
KVMARM <kvmarm@lists.linux.dev>,
ARMLinux <linux-arm-kernel@lists.infradead.org>,
Marc Zyngier <maz@kernel.org>, Oliver Upton <oupton@google.com>
Cc: Will Deacon <will@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Fuad Tabba <tabba@google.com>, Reiji Watanabe <reijiw@google.com>,
Raghavendra Rao Ananta <rananta@google.com>,
Jing Zhang <jingzhangos@google.com>
Subject: Re: [PATCH v8 5/6] KVM: arm64: Reuse fields of sys_reg_desc for idreg
Date: Tue, 16 May 2023 12:26:11 +0200 [thread overview]
Message-ID: <87ilcsh8sc.fsf@redhat.com> (raw)
In-Reply-To: <20230503171618.2020461-6-jingzhangos@google.com>
On Wed, May 03 2023, Jing Zhang <jingzhangos@google.com> wrote:
> Since reset() and val are not used for idreg in sys_reg_desc, they would
> be used with other purposes for idregs.
> The callback reset() would be used to return KVM sanitised id register
> values. The u64 val would be used as mask for writable fields in idregs.
> Only bits with 1 in val are writable from userspace.
>
> Signed-off-by: Jing Zhang <jingzhangos@google.com>
> ---
> arch/arm64/kvm/id_regs.c | 44 +++++++++++++++++++----------
> arch/arm64/kvm/sys_regs.c | 59 +++++++++++++++++++++++++++------------
> arch/arm64/kvm/sys_regs.h | 10 ++++---
> 3 files changed, 77 insertions(+), 36 deletions(-)
>
(...)
> diff --git a/arch/arm64/kvm/sys_regs.h b/arch/arm64/kvm/sys_regs.h
> index e88fd77309b2..21869319f6e1 100644
> --- a/arch/arm64/kvm/sys_regs.h
> +++ b/arch/arm64/kvm/sys_regs.h
> @@ -65,12 +65,12 @@ struct sys_reg_desc {
> const struct sys_reg_desc *);
>
> /* Initialization for vcpu. */
Maybe be a bit more verbose here?
/* Initialization for vcpu. Return initialized value, or KVM sanitized
value for id registers. */
> - void (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *);
> + u64 (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *);
>
> /* Index into sys_reg[], or 0 if we don't need to save it. */
> int reg;
>
> - /* Value (usually reset value) */
> + /* Value (usually reset value), or write mask for idregs */
> u64 val;
>
> /* Custom get/set_user functions, fallback to generic if NULL */
WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: Jing Zhang <jingzhangos@google.com>, KVM <kvm@vger.kernel.org>,
KVMARM <kvmarm@lists.linux.dev>,
ARMLinux <linux-arm-kernel@lists.infradead.org>,
Marc Zyngier <maz@kernel.org>, Oliver Upton <oupton@google.com>
Cc: Will Deacon <will@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Fuad Tabba <tabba@google.com>, Reiji Watanabe <reijiw@google.com>,
Raghavendra Rao Ananta <rananta@google.com>,
Jing Zhang <jingzhangos@google.com>
Subject: Re: [PATCH v8 5/6] KVM: arm64: Reuse fields of sys_reg_desc for idreg
Date: Tue, 16 May 2023 12:26:11 +0200 [thread overview]
Message-ID: <87ilcsh8sc.fsf@redhat.com> (raw)
In-Reply-To: <20230503171618.2020461-6-jingzhangos@google.com>
On Wed, May 03 2023, Jing Zhang <jingzhangos@google.com> wrote:
> Since reset() and val are not used for idreg in sys_reg_desc, they would
> be used with other purposes for idregs.
> The callback reset() would be used to return KVM sanitised id register
> values. The u64 val would be used as mask for writable fields in idregs.
> Only bits with 1 in val are writable from userspace.
>
> Signed-off-by: Jing Zhang <jingzhangos@google.com>
> ---
> arch/arm64/kvm/id_regs.c | 44 +++++++++++++++++++----------
> arch/arm64/kvm/sys_regs.c | 59 +++++++++++++++++++++++++++------------
> arch/arm64/kvm/sys_regs.h | 10 ++++---
> 3 files changed, 77 insertions(+), 36 deletions(-)
>
(...)
> diff --git a/arch/arm64/kvm/sys_regs.h b/arch/arm64/kvm/sys_regs.h
> index e88fd77309b2..21869319f6e1 100644
> --- a/arch/arm64/kvm/sys_regs.h
> +++ b/arch/arm64/kvm/sys_regs.h
> @@ -65,12 +65,12 @@ struct sys_reg_desc {
> const struct sys_reg_desc *);
>
> /* Initialization for vcpu. */
Maybe be a bit more verbose here?
/* Initialization for vcpu. Return initialized value, or KVM sanitized
value for id registers. */
> - void (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *);
> + u64 (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *);
>
> /* Index into sys_reg[], or 0 if we don't need to save it. */
> int reg;
>
> - /* Value (usually reset value) */
> + /* Value (usually reset value), or write mask for idregs */
> u64 val;
>
> /* Custom get/set_user functions, fallback to generic if NULL */
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-05-16 10:26 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-03 17:16 [PATCH v8 0/6] Support writable CPU ID registers from userspace Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-03 17:16 ` [PATCH v8 1/6] KVM: arm64: Move CPU ID feature registers emulation into a separate file Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-16 16:11 ` Marc Zyngier
2023-05-16 16:11 ` Marc Zyngier
2023-05-16 19:14 ` Jing Zhang
2023-05-16 19:14 ` Jing Zhang
2023-05-03 17:16 ` [PATCH v8 2/6] KVM: arm64: Save ID registers' sanitized value per guest Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-17 7:41 ` Marc Zyngier
2023-05-17 7:41 ` Marc Zyngier
2023-05-17 16:28 ` Jing Zhang
2023-05-17 16:28 ` Jing Zhang
2023-05-03 17:16 ` [PATCH v8 3/6] KVM: arm64: Use per guest ID register for ID_AA64PFR0_EL1.[CSV2|CSV3] Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-03 23:43 ` kernel test robot
2023-05-03 23:43 ` kernel test robot
2023-05-03 17:16 ` [PATCH v8 4/6] KVM: arm64: Use per guest ID register for ID_AA64DFR0_EL1.PMUVer Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-03 17:16 ` [PATCH v8 5/6] KVM: arm64: Reuse fields of sys_reg_desc for idreg Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-16 10:26 ` Cornelia Huck [this message]
2023-05-16 10:26 ` Cornelia Huck
2023-05-16 19:10 ` Jing Zhang
2023-05-16 19:10 ` Jing Zhang
2023-05-03 17:16 ` [PATCH v8 6/6] KVM: arm64: Refactor writings for PMUVer/CSV2/CSV3 Jing Zhang
2023-05-03 17:16 ` Jing Zhang
2023-05-17 22:00 ` Jitindar Singh, Suraj
2023-05-17 22:00 ` Jitindar Singh, Suraj
2023-05-17 22:55 ` Jing Zhang
2023-05-17 22:55 ` Jing Zhang
2023-05-18 21:08 ` Jitindar Singh, Suraj
2023-05-18 21:08 ` Jitindar Singh, Suraj
2023-05-19 9:16 ` Marc Zyngier
2023-05-19 9:16 ` Marc Zyngier
2023-05-19 23:04 ` Jitindar Singh, Suraj
2023-05-19 23:04 ` Jitindar Singh, Suraj
2023-05-20 8:45 ` Marc Zyngier
2023-05-20 8:45 ` Marc Zyngier
2023-05-19 23:25 ` Suraj Jitindar Singh
2023-05-19 23:25 ` Suraj Jitindar Singh
2023-05-16 10:37 ` [PATCH v8 0/6] Support writable CPU ID registers from userspace Shameerali Kolothum Thodi
2023-05-16 10:37 ` Shameerali Kolothum Thodi
2023-05-16 11:01 ` Marc Zyngier
2023-05-16 11:01 ` Marc Zyngier
2023-05-16 11:11 ` Shameerali Kolothum Thodi
2023-05-16 11:11 ` Shameerali Kolothum Thodi
2023-05-16 11:55 ` Cornelia Huck
2023-05-16 11:55 ` Cornelia Huck
2023-05-16 13:11 ` Marc Zyngier
2023-05-16 13:11 ` Marc Zyngier
2023-05-16 13:44 ` Shameerali Kolothum Thodi
2023-05-16 13:44 ` Shameerali Kolothum Thodi
2023-05-16 14:21 ` Cornelia Huck
2023-05-16 14:21 ` Cornelia Huck
2023-05-16 14:19 ` Cornelia Huck
2023-05-16 14:19 ` Cornelia Huck
2023-05-16 16:01 ` Marc Zyngier
2023-05-16 16:01 ` Marc Zyngier
2023-05-17 15:36 ` Cornelia Huck
2023-05-17 15:36 ` Cornelia Huck
2023-05-17 15:53 ` Marc Zyngier
2023-05-17 15:53 ` Marc Zyngier
2023-05-16 16:31 ` Oliver Upton
2023-05-16 16:31 ` Oliver Upton
2023-05-16 16:44 ` Marc Zyngier
2023-05-16 16:44 ` Marc Zyngier
2023-05-16 16:57 ` Oliver Upton
2023-05-16 16:57 ` Oliver Upton
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=87ilcsh8sc.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=alexandru.elisei@arm.com \
--cc=james.morse@arm.com \
--cc=jingzhangos@google.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=maz@kernel.org \
--cc=oupton@google.com \
--cc=pbonzini@redhat.com \
--cc=rananta@google.com \
--cc=reijiw@google.com \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.com \
--cc=will@kernel.org \
/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.