|
|
@@ -485,7 +485,6 @@ __setup("intel_iommu=", intel_iommu_setup);
|
|
|
|
|
|
static struct kmem_cache *iommu_domain_cache;
|
|
|
static struct kmem_cache *iommu_devinfo_cache;
|
|
|
-static struct kmem_cache *iommu_iova_cache;
|
|
|
|
|
|
static inline void *alloc_pgtable_page(int node)
|
|
|
{
|
|
|
@@ -523,16 +522,6 @@ static inline void free_devinfo_mem(void *vaddr)
|
|
|
kmem_cache_free(iommu_devinfo_cache, vaddr);
|
|
|
}
|
|
|
|
|
|
-struct iova *alloc_iova_mem(void)
|
|
|
-{
|
|
|
- return kmem_cache_alloc(iommu_iova_cache, GFP_ATOMIC);
|
|
|
-}
|
|
|
-
|
|
|
-void free_iova_mem(struct iova *iova)
|
|
|
-{
|
|
|
- kmem_cache_free(iommu_iova_cache, iova);
|
|
|
-}
|
|
|
-
|
|
|
static inline int domain_type_is_vm(struct dmar_domain *domain)
|
|
|
{
|
|
|
return domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE;
|
|
|
@@ -3427,23 +3416,6 @@ static inline int iommu_devinfo_cache_init(void)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static inline int iommu_iova_cache_init(void)
|
|
|
-{
|
|
|
- int ret = 0;
|
|
|
-
|
|
|
- iommu_iova_cache = kmem_cache_create("iommu_iova",
|
|
|
- sizeof(struct iova),
|
|
|
- 0,
|
|
|
- SLAB_HWCACHE_ALIGN,
|
|
|
- NULL);
|
|
|
- if (!iommu_iova_cache) {
|
|
|
- printk(KERN_ERR "Couldn't create iova cache\n");
|
|
|
- ret = -ENOMEM;
|
|
|
- }
|
|
|
-
|
|
|
- return ret;
|
|
|
-}
|
|
|
-
|
|
|
static int __init iommu_init_mempool(void)
|
|
|
{
|
|
|
int ret;
|
|
|
@@ -3461,7 +3433,7 @@ static int __init iommu_init_mempool(void)
|
|
|
|
|
|
kmem_cache_destroy(iommu_domain_cache);
|
|
|
domain_error:
|
|
|
- kmem_cache_destroy(iommu_iova_cache);
|
|
|
+ iommu_iova_cache_destroy();
|
|
|
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
@@ -3470,8 +3442,7 @@ static void __init iommu_exit_mempool(void)
|
|
|
{
|
|
|
kmem_cache_destroy(iommu_devinfo_cache);
|
|
|
kmem_cache_destroy(iommu_domain_cache);
|
|
|
- kmem_cache_destroy(iommu_iova_cache);
|
|
|
-
|
|
|
+ iommu_iova_cache_destroy();
|
|
|
}
|
|
|
|
|
|
static void quirk_ioat_snb_local_iommu(struct pci_dev *pdev)
|