mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-25 10:36:03 +00:00
KVM: x86: replace bitmap_weight with bitmap_empty where appropriate
In some places kvm/hyperv.c code calls bitmap_weight() to check if any bit of a given bitmap is set. It's better to use bitmap_empty() in that case because bitmap_empty() stops traversing the bitmap as soon as it finds first set bit, while bitmap_weight() counts all bits unconditionally. Signed-off-by: Yury Norov <yury.norov@gmail.com> Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Sean Christopherson <seanjc@google.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
parent
64b87c1a18
commit
fe06a0c09b
@ -90,7 +90,7 @@ static void synic_update_vector(struct kvm_vcpu_hv_synic *synic,
|
||||
{
|
||||
struct kvm_vcpu *vcpu = hv_synic_to_vcpu(synic);
|
||||
struct kvm_hv *hv = to_kvm_hv(vcpu->kvm);
|
||||
int auto_eoi_old, auto_eoi_new;
|
||||
bool auto_eoi_old, auto_eoi_new;
|
||||
|
||||
if (vector < HV_SYNIC_FIRST_VALID_VECTOR)
|
||||
return;
|
||||
@ -100,16 +100,16 @@ static void synic_update_vector(struct kvm_vcpu_hv_synic *synic,
|
||||
else
|
||||
__clear_bit(vector, synic->vec_bitmap);
|
||||
|
||||
auto_eoi_old = bitmap_weight(synic->auto_eoi_bitmap, 256);
|
||||
auto_eoi_old = !bitmap_empty(synic->auto_eoi_bitmap, 256);
|
||||
|
||||
if (synic_has_vector_auto_eoi(synic, vector))
|
||||
__set_bit(vector, synic->auto_eoi_bitmap);
|
||||
else
|
||||
__clear_bit(vector, synic->auto_eoi_bitmap);
|
||||
|
||||
auto_eoi_new = bitmap_weight(synic->auto_eoi_bitmap, 256);
|
||||
auto_eoi_new = !bitmap_empty(synic->auto_eoi_bitmap, 256);
|
||||
|
||||
if (!!auto_eoi_old == !!auto_eoi_new)
|
||||
if (auto_eoi_old == auto_eoi_new)
|
||||
return;
|
||||
|
||||
if (!enable_apicv)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user