x86/amd-iommu: Move find_protection_domain to helper functions
This is a helper function and when its placed in the helper function section we can remove its forward declaration. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
94f6d190ee
commit
71c70984e5
|
@ -59,7 +59,6 @@ struct iommu_cmd {
|
||||||
|
|
||||||
static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
|
static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
|
||||||
struct unity_map_entry *e);
|
struct unity_map_entry *e);
|
||||||
static struct dma_ops_domain *find_protection_domain(u16 devid);
|
|
||||||
static u64 *alloc_pte(struct protection_domain *domain,
|
static u64 *alloc_pte(struct protection_domain *domain,
|
||||||
unsigned long address, int end_lvl,
|
unsigned long address, int end_lvl,
|
||||||
u64 **pte_page, gfp_t gfp);
|
u64 **pte_page, gfp_t gfp);
|
||||||
|
@ -84,6 +83,34 @@ static inline u16 get_device_id(struct device *dev)
|
||||||
return calc_devid(pdev->bus->number, pdev->devfn);
|
return calc_devid(pdev->bus->number, pdev->devfn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In this function the list of preallocated protection domains is traversed to
|
||||||
|
* find the domain for a specific device
|
||||||
|
*/
|
||||||
|
static struct dma_ops_domain *find_protection_domain(u16 devid)
|
||||||
|
{
|
||||||
|
struct dma_ops_domain *entry, *ret = NULL;
|
||||||
|
unsigned long flags;
|
||||||
|
u16 alias = amd_iommu_alias_table[devid];
|
||||||
|
|
||||||
|
if (list_empty(&iommu_pd_list))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
spin_lock_irqsave(&iommu_pd_list_lock, flags);
|
||||||
|
|
||||||
|
list_for_each_entry(entry, &iommu_pd_list, list) {
|
||||||
|
if (entry->target_dev == devid ||
|
||||||
|
entry->target_dev == alias) {
|
||||||
|
ret = entry;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_AMD_IOMMU_STATS
|
#ifdef CONFIG_AMD_IOMMU_STATS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1455,34 +1482,6 @@ static bool check_device(struct device *dev)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* In this function the list of preallocated protection domains is traversed to
|
|
||||||
* find the domain for a specific device
|
|
||||||
*/
|
|
||||||
static struct dma_ops_domain *find_protection_domain(u16 devid)
|
|
||||||
{
|
|
||||||
struct dma_ops_domain *entry, *ret = NULL;
|
|
||||||
unsigned long flags;
|
|
||||||
u16 alias = amd_iommu_alias_table[devid];
|
|
||||||
|
|
||||||
if (list_empty(&iommu_pd_list))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&iommu_pd_list_lock, flags);
|
|
||||||
|
|
||||||
list_for_each_entry(entry, &iommu_pd_list, list) {
|
|
||||||
if (entry->target_dev == devid ||
|
|
||||||
entry->target_dev == alias) {
|
|
||||||
ret = entry;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In the dma_ops path we only have the struct device. This function
|
* In the dma_ops path we only have the struct device. This function
|
||||||
* finds the corresponding IOMMU, the protection domain and the
|
* finds the corresponding IOMMU, the protection domain and the
|
||||||
|
|
Loading…
Reference in New Issue