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>
This commit is contained in:
Konsta Holtta
2016-09-08 10:03:50 +03:00
committed by mobile promotions
parent 1a63ca3a65
commit 51a7cdce32

View File

@@ -3203,8 +3203,16 @@ int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, size_t size,
int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm, int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm,
enum dma_attr attr, size_t size, struct mem_desc *mem) enum dma_attr attr, size_t size, struct mem_desc *mem)
{ {
if (vm->mm->vidmem_is_vidmem) if (vm->mm->vidmem_is_vidmem) {
return gk20a_gmmu_alloc_map_attr_vid(vm, 0, size, mem); int err = gk20a_gmmu_alloc_map_attr_vid(vm, 0, size, mem);
if (!err)
return 0;
/*
* Fall back to sysmem (which may then also fail) in case
* vidmem is exhausted.
*/
}
return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem); return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem);
} }