Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34aaaa94 authored by Han, Weidong's avatar Han, Weidong Committed by David Woodhouse
Browse files

x86, dmar: check if it's initialized before disable queue invalidation



If queue invalidation is disabled after it's already initialized,
dmar_enable_qi won't re-enable it due to iommu->qi is allocated.
It may result in system hang when use queue invalidation. Add this
check to avoid this case.

Signed-off-by: default avatarWeidong Han <weidong.han@intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 161fde08
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -523,6 +523,13 @@ int __init enable_intr_remapping(int eim)
	for_each_drhd_unit(drhd) {
		struct intel_iommu *iommu = drhd->iommu;

		/*
		 * If the queued invalidation is already initialized,
		 * shouldn't disable it.
		 */
		if (iommu->qi)
			continue;

		/*
		 * Clear previous faults.
		 */