On Fri, 20 Jul 2018 at 00:47, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > 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). Will do in next version. Regards, Wanpeng Li