]> git.baikalelectronics.ru Git - kernel.git/commitdiff
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 a6e874e61a40e7cc989394960d11fcd1577fbfa4..0bd7701ad1df5d1e71fc58c4d1d9de72e55c7cdf 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);
 }