From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57450) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bslwY-0002bF-IL for qemu-devel@nongnu.org; Sat, 08 Oct 2016 03:21:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bslwT-0001UG-8J for qemu-devel@nongnu.org; Sat, 08 Oct 2016 03:21:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39466) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bslwT-0001Tu-21 for qemu-devel@nongnu.org; Sat, 08 Oct 2016 03:21:09 -0400 Date: Sat, 8 Oct 2016 15:21:00 +0800 From: Peter Xu Message-ID: <20161008072100.GJ3666@pxdev.xzpeter.org> References: <20161005130657.3399-1-rkrcmar@redhat.com> <20161005130657.3399-7-rkrcmar@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20161005130657.3399-7-rkrcmar@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v4 6/8] intel_iommu: reject broken EIM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Radim =?utf-8?B?S3LEjW3DocWZ?= Cc: qemu-devel@nongnu.org, Igor Mammedov , Paolo Bonzini , Richard Henderson , Eduardo Habkost , "Michael S. Tsirkin" On Wed, Oct 05, 2016 at 03:06:55PM +0200, Radim Kr=C4=8Dm=C3=A1=C5=99 wro= te: [...] > @@ -2472,10 +2473,22 @@ static bool vtd_decide_config(IntelIOMMUState *= s, Error **errp) > } > =20 > if (s->intr_eim =3D=3D ON_OFF_AUTO_AUTO) { > - s->intr_eim =3D x86_iommu->intr_supported ? > + s->intr_eim =3D x86_iommu->intr_supported && kvm_irqchip_in_ke= rnel() ? > ON_OFF_AUTO_ON : ON_OFF_= AUTO_OFF; > } > =20 > + if (s->intr_eim =3D=3D ON_OFF_AUTO_ON) { > + if (kvm_irqchip_in_kernel() && !kvm_enable_x2apic()) { > + error_setg(errp, "eim=3Don requires support on the KVM sid= e" > + "(X2APIC_API, first shipped in v4.7)"); > + return false; > + } > + if (!kvm_irqchip_in_kernel()) { > + error_setg(errp, "eim=3Don requires accel=3Dkvm,kernel-irq= chip=3Dsplit"); > + return false; > + } I would prefer: if (kvm_irqchip_in_kernel()) { if (!kvm_enable_x2apic()) { error("enable x2apic failed"); return false; } } else { error("need split irqchip"); return false; } But that's really a matter of taste. So: Reviewed-by: Peter Xu