KVM: arm64: Report corrupted refcount at EL2
authorQuentin Perret <qperret@google.com>
Tue, 5 Oct 2021 09:01:42 +0000 (10:01 +0100)
committerMarc Zyngier <maz@kernel.org>
Tue, 5 Oct 2021 12:02:54 +0000 (13:02 +0100)
Some of the refcount manipulation helpers used at EL2 are instrumented
to catch a corrupted state, but not all of them are treated equally. Let's
make things more consistent by instrumenting hyp_page_ref_dec_and_test()
as well.

Acked-by: Will Deacon <will@kernel.org>
Suggested-by: Will Deacon <will@kernel.org>
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211005090155.734578-6-qperret@google.com
arch/arm64/kvm/hyp/nvhe/page_alloc.c

index a6e874e..0bd7701 100644 (file)
@@ -152,6 +152,7 @@ static inline void hyp_page_ref_inc(struct hyp_page *p)
 
 static inline int hyp_page_ref_dec_and_test(struct hyp_page *p)
 {
+       BUG_ON(!p->refcount);
        p->refcount--;
        return (p->refcount == 0);
 }