summaryrefslogtreecommitdiff
path: root/include/linux/rwlock.h
diff options
context:
space:
mode:
authorBen Gardon <bgardon@google.com>2021-02-02 10:57:22 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2021-02-04 05:27:41 -0500
commitf1b3b06a058bb5c636ffad0afae138fe30775881 (patch)
treebf2ab8b034dbb158a159bccf64f296ff41edad9a /include/linux/rwlock.h
parent0f99ee2c7a58fc281c084d3acc0f0013bec7ec5a (diff)
KVM: x86/mmu: Clear dirtied pages mask bit before early break
In clear_dirty_pt_masked, the loop is intended to exit early after processing each of the GFNs with corresponding bits set in mask. This does not work as intended if another thread has already cleared the dirty bit or writable bit on the SPTE. In that case, the loop would proceed to the next iteration early and the bit in mask would not be cleared. As a result the loop could not exit early and would proceed uselessly. Move the unsetting of the mask bit before the check for a no-op SPTE change. Fixes: a6a0b05da9f3 ("kvm: x86/mmu: Support dirty logging for the TDP MMU") Suggested-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Ben Gardon <bgardon@google.com> Message-Id: <20210202185734.1680553-17-bgardon@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/linux/rwlock.h')
0 files changed, 0 insertions, 0 deletions