On 03/07/2018 08:21, Wanpeng Li wrote:
> +
> +     rcu_read_lock();
> +     map = rcu_dereference(kvm->arch.apic_map);
> +
> +     for_each_set_bit(i, &ipi_bitmap_low, BITS_PER_LONG) {
> +             vcpu = map->phys_map[i]->vcpu;
> +             if (!kvm_apic_set_irq(vcpu, &irq, NULL))
> +                     return 1;
> +     }
> +
> +     for_each_set_bit(i, &ipi_bitmap_high, BITS_PER_LONG) {
> +             vcpu = map->phys_map[i + BITS_PER_LONG]->vcpu;
> +             if (!kvm_apic_set_irq(vcpu, &irq, NULL))
> +                     return 1;
> +     }
> +

This should be the guest's BITS_PER_LONG, not the host's (i.e. you need
to pass op_64_bit from kvm_emulate_hypercall).

Thanks,

Paolo

Reply via email to