Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'iommu-fixes-v7.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux

Pull iommu fixes from Joerg Roedel:

- IOMMU-PT related compile breakage in for AMD driver

- IOTLB flushing behavior when unmapped region is larger than requested
due to page-sizes

- Fix IOTLB flush behavior with empty gathers

* tag 'iommu-fixes-v7.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux:
iommupt/amdv1: mark amdv1pt_install_leaf_entry as __always_inline
iommupt: Fix short gather if the unmap goes into a large mapping
iommu: Do not call drivers for empty gathers

+4 -3
+1 -1
drivers/iommu/generic_pt/fmt/amdv1.h
··· 191 191 } 192 192 #define pt_load_entry_raw amdv1pt_load_entry_raw 193 193 194 - static inline void 194 + static __always_inline void 195 195 amdv1pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa, 196 196 unsigned int oasz_lg2, 197 197 const struct pt_write_attrs *attrs)
+1 -1
drivers/iommu/generic_pt/iommu_pt.h
··· 1057 1057 1058 1058 pt_walk_range(&range, __unmap_range, &unmap); 1059 1059 1060 - gather_range_pages(iotlb_gather, iommu_table, iova, len, 1060 + gather_range_pages(iotlb_gather, iommu_table, iova, unmap.unmapped, 1061 1061 &unmap.free_list); 1062 1062 1063 1063 return unmap.unmapped;
+2 -1
include/linux/iommu.h
··· 980 980 static inline void iommu_iotlb_sync(struct iommu_domain *domain, 981 981 struct iommu_iotlb_gather *iotlb_gather) 982 982 { 983 - if (domain->ops->iotlb_sync) 983 + if (domain->ops->iotlb_sync && 984 + likely(iotlb_gather->start < iotlb_gather->end)) 984 985 domain->ops->iotlb_sync(domain, iotlb_gather); 985 986 986 987 iommu_iotlb_gather_init(iotlb_gather);