diff options
-rw-r--r-- | arch/arm64/kvm/sys_regs.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index a4363735d3f8..774d72155904 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c | |||
@@ -194,7 +194,16 @@ static bool access_dcsw(struct kvm_vcpu *vcpu, | |||
194 | if (!p->is_write) | 194 | if (!p->is_write) |
195 | return read_from_write_only(vcpu, p, r); | 195 | return read_from_write_only(vcpu, p, r); |
196 | 196 | ||
197 | kvm_set_way_flush(vcpu); | 197 | /* |
198 | * Only track S/W ops if we don't have FWB. It still indicates | ||
199 | * that the guest is a bit broken (S/W operations should only | ||
200 | * be done by firmware, knowing that there is only a single | ||
201 | * CPU left in the system, and certainly not from non-secure | ||
202 | * software). | ||
203 | */ | ||
204 | if (!cpus_have_const_cap(ARM64_HAS_STAGE2_FWB)) | ||
205 | kvm_set_way_flush(vcpu); | ||
206 | |||
198 | return true; | 207 | return true; |
199 | } | 208 | } |
200 | 209 | ||