Backport the following iommu/iova refactor and bug-fixes from upstream: 5df609c43284 iommu: Stop exporting iommu_map_sg_atomic() c199853c3f68 iommu: Take lock before reading iommu group default domain type 08e24a3ec59a iommu/vt-d: Avoid GFP_ATOMIC where it is not needed fd370417c52d iommu/vt-d: Add PRQ handling latency sampling 0a6a9c828579 iommu/vt-d: Move capability check code to cap_audit files 8b34b8555736 iommu/vt-d: Fix compile error [-Werror=implicit-function-declaration] 0bc4f1d116d2 iommu: Delete iommu_domain_window_disable() c72e969a8277 iommu: use the __iommu_attach_device() directly for deferred attach 0e5cf0357ec1 dma-iommu: use static-key to minimize the impact in the fast-path 814a2502a393 iommu/vt-d: Add qi_submit trace event d1b66718aadf iommu: Delete iommu_dev_has_feature() c2fc5cfd6900 dma-iommu: remove __iommu_dma_mmap c94c0df27177 iommu: Improve the performance for direct_mapping a6403393e59a iommu/vt-d: Remove set but not used variable 86ab3f115caa iommu: return error code when it can't get group 3599d135bba5 iommu: Add support to change default domain of an iommu group 24c475a0392e iommu: Move def_domain type check for untrusted device into core df8c43fa16dc dma-mapping: remove the {alloc,free}_noncoherent methods
merged: https://gitee.com/anolis/cloud-kernel/pulls/659