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
This commit is contained in:
Terje Bergstrom
2015-03-26 12:47:57 -07:00
committed by Dan Willemsen
parent 87226707cf
commit f09fa2cf20

View File

@@ -1735,12 +1735,12 @@ int gk20a_get_sgtable_from_pages(struct device *d, struct sg_table **sgt,
err = -ENOMEM; err = -ENOMEM;
goto fail; goto fail;
} }
err = sg_alloc_table(*sgt, 1, GFP_KERNEL); err = sg_alloc_table_from_pages(*sgt, pages,
DIV_ROUND_UP(size, 4096), 0, size, GFP_KERNEL);
if (err) { if (err) {
dev_err(d, "failed to allocate sg_table\n"); dev_err(d, "failed to allocate sg_table\n");
goto fail; goto fail;
} }
sg_set_page((*sgt)->sgl, *pages, size, 0);
sg_dma_address((*sgt)->sgl) = iova; sg_dma_address((*sgt)->sgl) = iova;
return 0; return 0;