KVM: sefltests: Verify value of dirty_log_test last page isn't bogus

Add a sanity check that a completely garbage value wasn't written to
the last dirty page in the ring, e.g. that it doesn't contain the *next*
iteration's value.

Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Link: https://lore.kernel.org/r/20250111003004.1235645-16-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
Sean Christopherson 2025-01-10 16:29:59 -08:00
parent d0bd72cb91
commit 485e27ed20

View File

@ -514,8 +514,9 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long **bmap)
* last page's iteration), as the value to be
* written may be cached in a CPU register.
*/
if (page == dirty_ring_last_page ||
page == dirty_ring_prev_iteration_last_page)
if ((page == dirty_ring_last_page ||
page == dirty_ring_prev_iteration_last_page) &&
val < iteration)
continue;
} else if (!val && iteration == 1 && bmap0_dirty) {
/*