From: Oliver Upton <oupton@google.com>
To: kvmarm@lists.cs.columbia.edu
Cc: kvm@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
Peter Shier <pshier@google.com>,
linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/6] KVM: arm64: Correctly treat writes to OSLSR_EL1 as undefined
Date: Tue, 2 Nov 2021 09:46:46 +0000 [thread overview]
Message-ID: <20211102094651.2071532-2-oupton@google.com> (raw)
In-Reply-To: <20211102094651.2071532-1-oupton@google.com>
Any valid implementation of the architecture should generate an
undefined exception for writes to a read-only register, such as
OSLSR_EL1. Nonetheless, the KVM handler actually implements write-ignore
behavior.
Align the trap handler for OSLSR_EL1 with hardware behavior. If such a
write ever traps to EL2, inject an undef into the guest and print a
warning.
Signed-off-by: Oliver Upton <oupton@google.com>
---
arch/arm64/kvm/sys_regs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 1d46e185f31e..17fa6ddf5405 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -292,7 +292,7 @@ static bool trap_oslsr_el1(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *r)
{
if (p->is_write) {
- return ignore_write(vcpu, p);
+ return write_to_read_only(vcpu, p, r);
} else {
p->regval = (1 << 3);
return true;
--
2.33.1.1089.g2158813163f-goog
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Oliver Upton <oupton@google.com>
To: kvmarm@lists.cs.columbia.edu
Cc: kvm@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org,
Andrew Jones <drjones@redhat.com>,
Peter Shier <pshier@google.com>,
Ricardo Koller <ricarkol@google.com>,
Reiji Watanabe <reijiw@google.com>,
Oliver Upton <oupton@google.com>
Subject: [PATCH v2 1/6] KVM: arm64: Correctly treat writes to OSLSR_EL1 as undefined
Date: Tue, 2 Nov 2021 09:46:46 +0000 [thread overview]
Message-ID: <20211102094651.2071532-2-oupton@google.com> (raw)
In-Reply-To: <20211102094651.2071532-1-oupton@google.com>
Any valid implementation of the architecture should generate an
undefined exception for writes to a read-only register, such as
OSLSR_EL1. Nonetheless, the KVM handler actually implements write-ignore
behavior.
Align the trap handler for OSLSR_EL1 with hardware behavior. If such a
write ever traps to EL2, inject an undef into the guest and print a
warning.
Signed-off-by: Oliver Upton <oupton@google.com>
---
arch/arm64/kvm/sys_regs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 1d46e185f31e..17fa6ddf5405 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -292,7 +292,7 @@ static bool trap_oslsr_el1(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *r)
{
if (p->is_write) {
- return ignore_write(vcpu, p);
+ return write_to_read_only(vcpu, p, r);
} else {
p->regval = (1 << 3);
return true;
--
2.33.1.1089.g2158813163f-goog
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Oliver Upton <oupton@google.com>
To: kvmarm@lists.cs.columbia.edu
Cc: kvm@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org,
Andrew Jones <drjones@redhat.com>,
Peter Shier <pshier@google.com>,
Ricardo Koller <ricarkol@google.com>,
Reiji Watanabe <reijiw@google.com>,
Oliver Upton <oupton@google.com>
Subject: [PATCH v2 1/6] KVM: arm64: Correctly treat writes to OSLSR_EL1 as undefined
Date: Tue, 2 Nov 2021 09:46:46 +0000 [thread overview]
Message-ID: <20211102094651.2071532-2-oupton@google.com> (raw)
In-Reply-To: <20211102094651.2071532-1-oupton@google.com>
Any valid implementation of the architecture should generate an
undefined exception for writes to a read-only register, such as
OSLSR_EL1. Nonetheless, the KVM handler actually implements write-ignore
behavior.
Align the trap handler for OSLSR_EL1 with hardware behavior. If such a
write ever traps to EL2, inject an undef into the guest and print a
warning.
Signed-off-by: Oliver Upton <oupton@google.com>
---
arch/arm64/kvm/sys_regs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 1d46e185f31e..17fa6ddf5405 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -292,7 +292,7 @@ static bool trap_oslsr_el1(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *r)
{
if (p->is_write) {
- return ignore_write(vcpu, p);
+ return write_to_read_only(vcpu, p, r);
} else {
p->regval = (1 << 3);
return true;
--
2.33.1.1089.g2158813163f-goog
next prev parent reply other threads:[~2021-11-02 9:47 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-02 9:46 [PATCH v2 0/6] KVM: arm64: Emulate the OS lock Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton [this message]
2021-11-02 9:46 ` [PATCH v2 1/6] KVM: arm64: Correctly treat writes to OSLSR_EL1 as undefined Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-04 2:40 ` Reiji Watanabe
2021-11-04 2:40 ` Reiji Watanabe
2021-11-04 2:40 ` Reiji Watanabe
2021-11-02 9:46 ` [PATCH v2 2/6] KVM: arm64: Stash OSLSR_EL1 in the cpu context Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:51 ` Oliver Upton
2021-11-02 9:51 ` Oliver Upton
2021-11-02 9:51 ` Oliver Upton
2021-11-04 3:37 ` Reiji Watanabe
2021-11-04 3:37 ` Reiji Watanabe
2021-11-04 3:37 ` Reiji Watanabe
2021-11-02 9:46 ` [PATCH v2 3/6] KVM: arm64: Allow guest to set the OSLK bit Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-04 3:31 ` Reiji Watanabe
2021-11-04 3:31 ` Reiji Watanabe
2021-11-04 3:31 ` Reiji Watanabe
2021-11-04 3:47 ` Ricardo Koller
2021-11-04 3:47 ` Ricardo Koller
2021-11-04 3:47 ` Ricardo Koller
2021-11-04 4:40 ` Oliver Upton
2021-11-04 4:40 ` Oliver Upton
2021-11-04 4:40 ` Oliver Upton
2021-11-02 9:46 ` [PATCH v2 4/6] KVM: arm64: Emulate the OS Lock Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 23:45 ` Ricardo Koller
2021-11-02 23:45 ` Ricardo Koller
2021-11-02 23:45 ` Ricardo Koller
2021-11-03 0:35 ` Oliver Upton
2021-11-03 0:35 ` Oliver Upton
2021-11-03 0:35 ` Oliver Upton
2021-11-05 3:56 ` Reiji Watanabe
2021-11-05 3:56 ` Reiji Watanabe
2021-11-05 3:56 ` Reiji Watanabe
2021-11-05 5:36 ` Oliver Upton
2021-11-05 5:36 ` Oliver Upton
2021-11-05 5:36 ` Oliver Upton
2021-11-02 9:46 ` [PATCH v2 5/6] selftests: KVM: Add OSLSR_EL1 to the list of blessed regs Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` [PATCH v2 6/6] selftests: KVM: Test OS lock behavior Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 9:46 ` Oliver Upton
2021-11-02 11:09 ` Marc Zyngier
2021-11-02 11:09 ` Marc Zyngier
2021-11-02 11:09 ` Marc Zyngier
2021-11-02 14:53 ` Oliver Upton
2021-11-02 14:53 ` Oliver Upton
2021-11-02 14:53 ` Oliver Upton
2021-11-02 20:01 ` Oliver Upton
2021-11-02 20:01 ` Oliver Upton
2021-11-02 20:01 ` Oliver Upton
2021-11-02 23:27 ` Ricardo Koller
2021-11-02 23:27 ` Ricardo Koller
2021-11-02 23:27 ` Ricardo Koller
2021-11-02 23:36 ` Oliver Upton
2021-11-02 23:36 ` Oliver Upton
2021-11-02 23:36 ` 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=20211102094651.2071532-2-oupton@google.com \
--to=oupton@google.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=maz@kernel.org \
--cc=pshier@google.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.