summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-05-18 16:37:54 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-06-06 10:24:11 -0400
commit0dc66952e4df80b45c77bdbb31ce2a32f216328f (patch)
treed15940a8c50ebdb30886bcdc64155270fc0828bc /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parentd5fd0689c23683c161128cf9b51077d3b8c1c2bc (diff)
gpu: nvgpu: Use vmalloc only when size >4K
When allocation size is 4k or below, we should use kmalloc. vmalloc should be used only for larged allocations. Introduce nvgpu_alloc, which checks the size, and decides the API to use. Change-Id: I593110467cd319851b27e57d1bfe8d228d3f2909 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/743974 (cherry picked from commit 7f56aa1f0ecafbfde7286353b60e25e494674d26) Reviewed-on: http://git-master/r/753276 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index a38db709..342d3ace 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -745,8 +745,8 @@ int gk20a_vm_get_buffers(struct vm_gk20a *vm,
745 745
746 mutex_lock(&vm->update_gmmu_lock); 746 mutex_lock(&vm->update_gmmu_lock);
747 747
748 buffer_list = kzalloc(sizeof(*buffer_list) * 748 buffer_list = nvgpu_alloc(sizeof(*buffer_list) *
749 vm->num_user_mapped_buffers, GFP_KERNEL); 749 vm->num_user_mapped_buffers, true);
750 if (!buffer_list) { 750 if (!buffer_list) {
751 mutex_unlock(&vm->update_gmmu_lock); 751 mutex_unlock(&vm->update_gmmu_lock);
752 return -ENOMEM; 752 return -ENOMEM;
@@ -795,7 +795,7 @@ void gk20a_vm_put_buffers(struct vm_gk20a *vm,
795 795
796 mutex_unlock(&vm->update_gmmu_lock); 796 mutex_unlock(&vm->update_gmmu_lock);
797 797
798 kfree(mapped_buffers); 798 nvgpu_free(mapped_buffers);
799} 799}
800 800
801static void gk20a_vm_unmap_user(struct vm_gk20a *vm, u64 offset) 801static void gk20a_vm_unmap_user(struct vm_gk20a *vm, u64 offset)