intel_iommu: Fix irqchip / X2APIC configuration checks
We don't need to check kvm_enable_x2apic(). It's perfectly OK to support interrupt remapping even if we can't address CPUs above 254. Kind of pointless, but still functional. The check on kvm_enable_x2apic() needs to happen *anyway* in order to allow CPUs above 254 even without an IOMMU, so allow that to happen elsewhere. However, we do require the *split* irqchip in order to rewrite I/OAPIC destinations. So fix that check while we're here. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked-by: Claudio Fontana <cfontana@suse.de> Message-Id: <20220314142544.150555-4-dwmw2@infradead.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
		
				
					committed by
					
						
						Michael S. Tsirkin
					
				
			
			
				
	
			
			
			
						parent
						
							175f3a5986
						
					
				
				
					commit
					77250171bd
				
			@@ -3786,15 +3786,10 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
 | 
			
		||||
                                              ON_OFF_AUTO_ON : ON_OFF_AUTO_OFF;
 | 
			
		||||
    }
 | 
			
		||||
    if (s->intr_eim == ON_OFF_AUTO_ON && !s->buggy_eim) {
 | 
			
		||||
        if (!kvm_irqchip_in_kernel()) {
 | 
			
		||||
        if (!kvm_irqchip_is_split()) {
 | 
			
		||||
            error_setg(errp, "eim=on requires accel=kvm,kernel-irqchip=split");
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        if (!kvm_enable_x2apic()) {
 | 
			
		||||
            error_setg(errp, "eim=on requires support on the KVM side"
 | 
			
		||||
                             "(X2APIC_API, first shipped in v4.7)");
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Currently only address widths supported are 39 and 48 bits */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user