diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-03-26 15:47:57 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-04-04 22:02:44 -0400 |
commit | f09fa2cf2094ad6b2aff3145aa5e608f7ccf83fb (patch) | |
tree | 9a7d382e5b3d340838de6b0c4568ec1bf2b74363 /drivers | |
parent | 87226707cfbabbf38a1a954dedd3575e67bbe48d (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')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 4 |
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; |