Well that assert is plain wrong:
static int apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
int short_hand, int dest, int dest_mode)
{
int result = 0;
struct kvm_lapic *target = vcpu->arch.apic;
apic_debug("target %p, source %p, dest 0x%x, "
"dest_mode 0x%x, short_hand 0x%x",
target, source, dest, dest_mode, short_hand);
ASSERT(!target);
It should be ASSERT(target), if anything.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
--