Commit a0e9911a authored by Yanfei Xu's avatar Yanfei Xu Committed by Joerg Roedel
Browse files

iommu/vt-d: Handle the failure case of dmar_reenable_qi()



dmar_reenable_qi() may not succeed. Check and return when it fails.

Signed-off-by: default avatarYanfei Xu <yanfei.xu@intel.com>
Link: https://lore.kernel.org/r/20230605112659.308981-2-yanfei.xu@intel.com


Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 82d9654f
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -2967,10 +2967,15 @@ static int init_iommu_hw(void)
{
	struct dmar_drhd_unit *drhd;
	struct intel_iommu *iommu = NULL;
	int ret;

	for_each_active_iommu(iommu, drhd)
		if (iommu->qi)
			dmar_reenable_qi(iommu);
	for_each_active_iommu(iommu, drhd) {
		if (iommu->qi) {
			ret = dmar_reenable_qi(iommu);
			if (ret)
				return ret;
		}
	}

	for_each_iommu(iommu, drhd) {
		if (drhd->ignored) {