Merge tag 'bitmap-for-5.19-rc1' of https://github.com/norov/linux
[platform/kernel/linux-starfive.git] / arch / x86 / kvm / hyperv.c
index a0702b6..e2e95a6 100644 (file)
@@ -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)
@@ -1855,7 +1855,7 @@ static u64 kvm_hv_flush_tlb(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *hc)
                all_cpus = flush_ex.hv_vp_set.format !=
                        HV_GENERIC_SET_SPARSE_4K;
 
-               if (hc->var_cnt != bitmap_weight((unsigned long *)&valid_bank_mask, 64))
+               if (hc->var_cnt != hweight64(valid_bank_mask))
                        return HV_STATUS_INVALID_HYPERCALL_INPUT;
 
                if (all_cpus)
@@ -1956,7 +1956,7 @@ static u64 kvm_hv_send_ipi(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *hc)
                valid_bank_mask = send_ipi_ex.vp_set.valid_bank_mask;
                all_cpus = send_ipi_ex.vp_set.format == HV_GENERIC_SET_ALL;
 
-               if (hc->var_cnt != bitmap_weight((unsigned long *)&valid_bank_mask, 64))
+               if (hc->var_cnt != hweight64(valid_bank_mask))
                        return HV_STATUS_INVALID_HYPERCALL_INPUT;
 
                if (all_cpus)