2016-01-21 05:33+0000, Wu, Feng: >> From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel- >> owner@xxxxxxxxxxxxxxx] On Behalf Of Yang Zhang >> On 2016/1/20 9:42, Feng Wu wrote: >> > + /* >> > + * We may find a hardware disabled LAPIC here, if >> that >> > + * is the case, print out a error message once for each >> > + * guest and return. >> > + */ >> > + if (!dst[idx-1] && >> > + (kvm->arch.disabled_lapic_found == 0)) { >> > + kvm->arch.disabled_lapic_found = 1; >> > + printk(KERN_ERR >> > + "Disabled LAPIC found during irq >> injection\n"); >> > + goto out; >> >> What does "goto out" mean? Inject successfully or fail? According the >> value of ret which is set to ture here, it means inject successfully but (true actually means that fast path did the job and slow path isn't needed.) >> i = -1. (I think there isn't a practical difference between *r=-1 and *r=0.) > Oh, I didn't notice 'ret' is initialized to true, I thought it was initialized > to false like another function, I should add a "ret = false' here. We should > failed to inject the interrupt since hardware disabled LAPIC is found. 'ret = true' is the better one. We know that the interrupt is not deliverable [1], so there's no point in trying to deliver with the slow path. We behave similarly when the interrupt targets a single disabled APIC. --- 1: Well ... it's possible that slowpath would deliver it thanks to different handling of disabled APICs, but it's undefined behavior, so it doesn't matter matter if we don't try. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html