diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-05-18 16:37:54 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-06-06 10:24:11 -0400 |
commit | 0dc66952e4df80b45c77bdbb31ce2a32f216328f (patch) | |
tree | d15940a8c50ebdb30886bcdc64155270fc0828bc /drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |
parent | d5fd0689c23683c161128cf9b51077d3b8c1c2bc (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.c | 6 |
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 | ||
801 | static void gk20a_vm_unmap_user(struct vm_gk20a *vm, u64 offset) | 801 | static void gk20a_vm_unmap_user(struct vm_gk20a *vm, u64 offset) |