22
22
#include <linux/pm_runtime.h>
23
23
#include <linux/slab.h>
24
24
25
+ #include "iommu-pages.h"
26
+
25
27
typedef u32 sysmmu_iova_t ;
26
28
typedef u32 sysmmu_pte_t ;
27
29
static struct iommu_domain exynos_identity_domain ;
@@ -900,11 +902,11 @@ static struct iommu_domain *exynos_iommu_domain_alloc_paging(struct device *dev)
900
902
if (!domain )
901
903
return NULL ;
902
904
903
- domain -> pgtable = ( sysmmu_pte_t * ) __get_free_pages (GFP_KERNEL , 2 );
905
+ domain -> pgtable = iommu_alloc_pages (GFP_KERNEL , 2 );
904
906
if (!domain -> pgtable )
905
907
goto err_pgtable ;
906
908
907
- domain -> lv2entcnt = ( short * ) __get_free_pages ( GFP_KERNEL | __GFP_ZERO , 1 );
909
+ domain -> lv2entcnt = iommu_alloc_pages ( GFP_KERNEL , 1 );
908
910
if (!domain -> lv2entcnt )
909
911
goto err_counter ;
910
912
@@ -930,9 +932,9 @@ static struct iommu_domain *exynos_iommu_domain_alloc_paging(struct device *dev)
930
932
return & domain -> domain ;
931
933
932
934
err_lv2ent :
933
- free_pages (( unsigned long ) domain -> lv2entcnt , 1 );
935
+ iommu_free_pages ( domain -> lv2entcnt , 1 );
934
936
err_counter :
935
- free_pages (( unsigned long ) domain -> pgtable , 2 );
937
+ iommu_free_pages ( domain -> pgtable , 2 );
936
938
err_pgtable :
937
939
kfree (domain );
938
940
return NULL ;
@@ -973,8 +975,8 @@ static void exynos_iommu_domain_free(struct iommu_domain *iommu_domain)
973
975
phys_to_virt (base ));
974
976
}
975
977
976
- free_pages (( unsigned long ) domain -> pgtable , 2 );
977
- free_pages (( unsigned long ) domain -> lv2entcnt , 1 );
978
+ iommu_free_pages ( domain -> pgtable , 2 );
979
+ iommu_free_pages ( domain -> lv2entcnt , 1 );
978
980
kfree (domain );
979
981
}
980
982
0 commit comments