On Wed, Oct 05, 2016 at 03:06:55PM +0200, Radim Krčmář wrote:

[...]

> @@ -2472,10 +2473,22 @@ static bool vtd_decide_config(IntelIOMMUState *s, 
> Error **errp)
>      }
>  
>      if (s->intr_eim == ON_OFF_AUTO_AUTO) {
> -        s->intr_eim = x86_iommu->intr_supported ?
> +        s->intr_eim = x86_iommu->intr_supported && kvm_irqchip_in_kernel() ?
>                                                ON_OFF_AUTO_ON : 
> ON_OFF_AUTO_OFF;
>      }
>  
> +    if (s->intr_eim == ON_OFF_AUTO_ON) {
> +        if (kvm_irqchip_in_kernel() && !kvm_enable_x2apic()) {
> +            error_setg(errp, "eim=on requires support on the KVM side"
> +                             "(X2APIC_API, first shipped in v4.7)");
> +            return false;
> +        }
> +        if (!kvm_irqchip_in_kernel()) {
> +            error_setg(errp, "eim=on requires 
> accel=kvm,kernel-irqchip=split");
> +            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 <pet...@redhat.com>

Reply via email to