diff options
Diffstat (limited to 'drivers/iommu/intel/cap_audit.c')
| -rw-r--r-- | drivers/iommu/intel/cap_audit.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/iommu/intel/cap_audit.c b/drivers/iommu/intel/cap_audit.c index b12e421a2f1a..b39d223926a4 100644 --- a/drivers/iommu/intel/cap_audit.c +++ b/drivers/iommu/intel/cap_audit.c @@ -163,6 +163,14 @@ static int cap_audit_static(struct intel_iommu *iommu, enum cap_audit_type type)  			check_irq_capabilities(iommu, i);  	} +	/* +	 * If the system is sane to support scalable mode, either SL or FL +	 * should be sane. +	 */ +	if (intel_cap_smts_sanity() && +	    !intel_cap_flts_sanity() && !intel_cap_slts_sanity()) +		return -EOPNOTSUPP; +  out:  	rcu_read_unlock();  	return 0; @@ -203,3 +211,8 @@ bool intel_cap_flts_sanity(void)  {  	return ecap_flts(intel_iommu_ecap_sanity);  } + +bool intel_cap_slts_sanity(void) +{ +	return ecap_slts(intel_iommu_ecap_sanity); +}  |