diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2017-03-27 19:03:44 +0300 |
---|---|---|
committer | Christoffer Dall <cdall@linaro.org> | 2017-04-09 17:49:16 +0300 |
commit | b1d4cb69838f71d62dc0ecf21566a1425835f015 (patch) | |
tree | ecd320b1adbd92c1a3c4e12f9bfd07a5c6295ff6 /arch/arm/kvm/coproc.h | |
parent | b6b7a8069d5f44bcc248f5d067cdb22debadfa56 (diff) | |
download | linux-b1d4cb69838f71d62dc0ecf21566a1425835f015.tar.xz |
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 'arch/arm/kvm/coproc.h')
-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) |