On Thu, Sep 21, 2017 at 4:41 PM, Robin Murphy <robin.mur...@arm.com> wrote: > On 21/09/17 09:59, Ganapatrao Kulkarni wrote: >> function __arm_lpae_alloc_pages is used to allcoated memory for smmu >> translation tables. updating function to allocate memory/pages >> from the proximity domain of SMMU device. > > AFAICS, data->pgd_size always works out to a power-of-two number of > pages, so I'm not sure why we've ever needed alloc_pages_exact() here. I > think we could simply use alloc_pages_node() and drop patch #1.
thanks Robin, i think we can replace with alloc_pages_node. i will change as suggested in next version. > > Robin. > >> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulka...@cavium.com> >> --- >> drivers/iommu/io-pgtable-arm.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c >> index e8018a3..f6d01f6 100644 >> --- a/drivers/iommu/io-pgtable-arm.c >> +++ b/drivers/iommu/io-pgtable-arm.c >> @@ -215,8 +215,10 @@ static void *__arm_lpae_alloc_pages(size_t size, gfp_t >> gfp, >> { >> struct device *dev = cfg->iommu_dev; >> dma_addr_t dma; >> - void *pages = alloc_pages_exact(size, gfp | __GFP_ZERO); >> + void *pages; >> >> + pages = alloc_pages_exact_nid(dev_to_node(dev), size, >> + gfp | __GFP_ZERO); >> if (!pages) >> return NULL; >> >> > thanks Ganapat