diff options
author | Marc Zyngier <maz@kernel.org> | 2022-05-28 12:38:25 +0100 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2022-06-29 10:23:37 +0100 |
commit | e19f2c6cd14668c0d5b1cef280632b7ca5893118 (patch) | |
tree | 0d951945ab0cea275819a6678458fde5a4832be1 /arch/arm64/include/asm/kvm_emulate.h | |
parent | 30b6ab45f81334e83dcb440451b6a4c4a753a118 (diff) | |
download | linux-e19f2c6cd14668c0d5b1cef280632b7ca5893118.tar.gz linux-e19f2c6cd14668c0d5b1cef280632b7ca5893118.tar.bz2 linux-e19f2c6cd14668c0d5b1cef280632b7ca5893118.zip |
KVM: arm64: Warn when PENDING_EXCEPTION and INCREMENT_PC are set together
We really don't want PENDING_EXCEPTION and INCREMENT_PC to ever be
set at the same time, as they are mutually exclusive. Add checks
that will generate a warning should this ever happen.
Reviewed-by: Fuad Tabba <tabba@google.com>
Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch/arm64/include/asm/kvm_emulate.h')
-rw-r--r-- | arch/arm64/include/asm/kvm_emulate.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h index 6ec58080ece8..9bdba47f7e14 100644 --- a/arch/arm64/include/asm/kvm_emulate.h +++ b/arch/arm64/include/asm/kvm_emulate.h @@ -473,11 +473,13 @@ static inline unsigned long vcpu_data_host_to_guest(struct kvm_vcpu *vcpu, static __always_inline void kvm_incr_pc(struct kvm_vcpu *vcpu) { + WARN_ON(vcpu_get_flag(vcpu, PENDING_EXCEPTION)); vcpu_set_flag(vcpu, INCREMENT_PC); } #define kvm_pend_exception(v, e) \ do { \ + WARN_ON(vcpu_get_flag((v), INCREMENT_PC)); \ vcpu_set_flag((v), PENDING_EXCEPTION); \ vcpu_set_flag((v), e); \ } while (0) |