mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-15 22:31:47 -04:00
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
This commit is contained in:
@@ -191,7 +191,7 @@ static inline enum pt_entry_type amdv1pt_load_entry_raw(struct pt_state *pts)
|
||||
}
|
||||
#define pt_load_entry_raw amdv1pt_load_entry_raw
|
||||
|
||||
static inline void
|
||||
static __always_inline void
|
||||
amdv1pt_install_leaf_entry(struct pt_state *pts, pt_oaddr_t oa,
|
||||
unsigned int oasz_lg2,
|
||||
const struct pt_write_attrs *attrs)
|
||||
|
||||
@@ -1057,7 +1057,7 @@ size_t DOMAIN_NS(unmap_pages)(struct iommu_domain *domain, unsigned long iova,
|
||||
|
||||
pt_walk_range(&range, __unmap_range, &unmap);
|
||||
|
||||
gather_range_pages(iotlb_gather, iommu_table, iova, len,
|
||||
gather_range_pages(iotlb_gather, iommu_table, iova, unmap.unmapped,
|
||||
&unmap.free_list);
|
||||
|
||||
return unmap.unmapped;
|
||||
|
||||
@@ -980,7 +980,8 @@ static inline void iommu_flush_iotlb_all(struct iommu_domain *domain)
|
||||
static inline void iommu_iotlb_sync(struct iommu_domain *domain,
|
||||
struct iommu_iotlb_gather *iotlb_gather)
|
||||
{
|
||||
if (domain->ops->iotlb_sync)
|
||||
if (domain->ops->iotlb_sync &&
|
||||
likely(iotlb_gather->start < iotlb_gather->end))
|
||||
domain->ops->iotlb_sync(domain, iotlb_gather);
|
||||
|
||||
iommu_iotlb_gather_init(iotlb_gather);
|
||||
|
||||
Reference in New Issue
Block a user