summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-03-26 15:47:57 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 22:02:44 -0400
commitf09fa2cf2094ad6b2aff3145aa5e608f7ccf83fb (patch)
tree9a7d382e5b3d340838de6b0c4568ec1bf2b74363 /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parent87226707cfbabbf38a1a954dedd3575e67bbe48d (diff)
gpu: nvgpu: Use sg_alloc_table_for_pages
Use sg_alloc_table_for_pages to create sg_table for buffers allocated with NO_KERNEL_MAPPING. The old code returned always an sg_table with one chunk. sg_alloc_table_for_pages returns an sg_table which describes the actual physical chunks of the buffer. Bug 1605769 Change-Id: I412c0151d830fa0f53dbbb08ba8cc9ebce6699e3 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/723696
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 0ddd9ecb..e2e5fdd7 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -1735,12 +1735,12 @@ int gk20a_get_sgtable_from_pages(struct device *d, struct sg_table **sgt,
1735 err = -ENOMEM; 1735 err = -ENOMEM;
1736 goto fail; 1736 goto fail;
1737 } 1737 }
1738 err = sg_alloc_table(*sgt, 1, GFP_KERNEL); 1738 err = sg_alloc_table_from_pages(*sgt, pages,
1739 DIV_ROUND_UP(size, 4096), 0, size, GFP_KERNEL);
1739 if (err) { 1740 if (err) {
1740 dev_err(d, "failed to allocate sg_table\n"); 1741 dev_err(d, "failed to allocate sg_table\n");
1741 goto fail; 1742 goto fail;
1742 } 1743 }
1743 sg_set_page((*sgt)->sgl, *pages, size, 0);
1744 sg_dma_address((*sgt)->sgl) = iova; 1744 sg_dma_address((*sgt)->sgl) = iova;
1745 1745
1746 return 0; 1746 return 0;