KVM: Discard zero mask with function kvm_dirty_ring_reset

Function kvm_reset_dirty_gfn may be called with parameters cur_slot /
cur_offset / mask are all zero, it does not represent real dirty page.
It is not necessary to clear dirty page in this condition. Also return
value of macro __fls() is undefined if mask is zero which is called in
funciton kvm_reset_dirty_gfn(). Here just return.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Message-ID: <20240613122803.1031511-1-maobibo@loongson.cn>
[Move the conditional inside kvm_reset_dirty_gfn; suggested by
 Sean Christopherson. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Bibo Mao 2024-06-13 20:28:03 +08:00 committed by Paolo Bonzini
parent c31745d2c5
commit 676f819c3e

View File

@ -55,6 +55,9 @@ static void kvm_reset_dirty_gfn(struct kvm *kvm, u32 slot, u64 offset, u64 mask)
struct kvm_memory_slot *memslot; struct kvm_memory_slot *memslot;
int as_id, id; int as_id, id;
if (!mask)
return;
as_id = slot >> 16; as_id = slot >> 16;
id = (u16)slot; id = (u16)slot;