diff options
author | 2017-03-27 17:03:44 +0100 | |
---|---|---|
committer | 2017-04-09 07:49:16 -0700 | |
commit | b1d4cb69838f71d62dc0ecf21566a1425835f015 (patch) | |
tree | ecd320b1adbd92c1a3c4e12f9bfd07a5c6295ff6 /arch/arm/kvm/coproc.h | |
parent | arm64: KVM: Do not corrupt registers on failed 64bit CP read (diff) | |
download | linux-dev-b1d4cb69838f71d62dc0ecf21566a1425835f015.tar.xz linux-dev-b1d4cb69838f71d62dc0ecf21566a1425835f015.zip |
arm: KVM: Make unexpected register accesses inject an undef
Reads from write-only system registers are generally confined to
EL1 and not propagated to EL2 (that's what the architecture
mantates). In order to be sure that we have a sane behaviour
even in the unlikely event that we have a broken system, we still
handle it in KVM. Same goes for write to RO registers.
In that case, let's inject an undef into the guest.
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to '')
-rw-r--r-- | arch/arm/kvm/coproc.h | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/arch/arm/kvm/coproc.h b/arch/arm/kvm/coproc.h index eef1759c2b65..3a41b7d1eb86 100644 --- a/arch/arm/kvm/coproc.h +++ b/arch/arm/kvm/coproc.h @@ -81,24 +81,6 @@ static inline bool read_zero(struct kvm_vcpu *vcpu, return true; } -static inline bool write_to_read_only(struct kvm_vcpu *vcpu, - const struct coproc_params *params) -{ - kvm_debug("CP15 write to read-only register at: %08lx\n", - *vcpu_pc(vcpu)); - print_cp_instr(params); - return false; -} - -static inline bool read_from_write_only(struct kvm_vcpu *vcpu, - const struct coproc_params *params) -{ - kvm_debug("CP15 read to write-only register at: %08lx\n", - *vcpu_pc(vcpu)); - print_cp_instr(params); - return false; -} - /* Reset functions */ static inline void reset_unknown(struct kvm_vcpu *vcpu, const struct coproc_reg *r) |