diff options
author | Andrew Jones <drjones@redhat.com> | 2017-07-01 18:26:54 +0200 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2017-07-25 14:18:01 +0100 |
commit | d9f89b4e9290e46cd9b273e9ad0bff0f93e86fae (patch) | |
tree | 94f2f88610beefb87a9995c91a9452a867990d3a /fs/attr.c | |
parent | 79962a5c8ba5b33f49d88a058e2124bf2ff3c034 (diff) | |
download | linux-stable-d9f89b4e9290e46cd9b273e9ad0bff0f93e86fae.tar.gz linux-stable-d9f89b4e9290e46cd9b273e9ad0bff0f93e86fae.tar.bz2 linux-stable-d9f89b4e9290e46cd9b273e9ad0bff0f93e86fae.zip |
KVM: arm/arm64: PMU: Fix overflow interrupt injection
kvm_pmu_overflow_set() is called from perf's interrupt handler,
making the call of kvm_vgic_inject_irq() from it introduced with
"KVM: arm/arm64: PMU: remove request-less vcpu kick" a really bad
idea, as it's quite easy to try and retake a lock that the
interrupted context is already holding. The fix is to use a vcpu
kick, leaving the interrupt injection to kvm_pmu_sync_hwstate(),
like it was doing before the refactoring. We don't just revert,
though, because before the kick was request-less, leaving the vcpu
exposed to the request-less vcpu kick race, and also because the
kick was used unnecessarily from register access handlers.
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'fs/attr.c')
0 files changed, 0 insertions, 0 deletions