summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2016-09-08 03:03:50 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-15 15:23:53 -0400
commit51a7cdce32ecc830e13d67c0c8fdcd7ef6c6e38b (patch)
treec56a316badbea559e1b17adab17b34d954ec7c8c /drivers
parent1a63ca3a657fb65dfb8390aa7440f34d0b3d743b (diff)
gpu: nvgpu: fall back to sysmem for generic alloc-maps
In gk20a_gmmu_alloc_map_attr(), which is used for in-kernel allocations combined with immediate gmmu map, fall back to attempting to allocate sysmem when vidmem allocation fails. Bug 1809939 Change-Id: I4ec4fbf93d41fd9681166b47b3ecad24b51ea274 Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1216814 (cherry picked from commit a9929682f1f356f7e8a652a2cec8ed73cc492448) Reviewed-on: http://git-master/r/1217688 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 4005d5f4..1b052a20 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -3203,8 +3203,16 @@ int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, size_t size,
3203int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm, 3203int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm,
3204 enum dma_attr attr, size_t size, struct mem_desc *mem) 3204 enum dma_attr attr, size_t size, struct mem_desc *mem)
3205{ 3205{
3206 if (vm->mm->vidmem_is_vidmem) 3206 if (vm->mm->vidmem_is_vidmem) {
3207 return gk20a_gmmu_alloc_map_attr_vid(vm, 0, size, mem); 3207 int err = gk20a_gmmu_alloc_map_attr_vid(vm, 0, size, mem);
3208
3209 if (!err)
3210 return 0;
3211 /*
3212 * Fall back to sysmem (which may then also fail) in case
3213 * vidmem is exhausted.
3214 */
3215 }
3208 3216
3209 return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem); 3217 return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem);
3210} 3218}