Previously, when the caller to iommu_domain_unload_entry() passed the value "true" for the parameter "free", there was no guarantee that the invalidation was complete, in other words, dmar_qi_task() was done with the entry, before the caller finally freed the entry.