diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2017-03-31 08:21:55 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-04-03 11:55:20 -0400 |
commit | 371b173c12df8828df74da2c8edfc94182dccfae (patch) | |
tree | 491fc909e722109f10019d350f7101804f868e6c /drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |
parent | f0147665b2d9c3faa673e6b0001be596018c4e9c (diff) |
gpu: nvgpu: use nvgpu list for vidmem clear list
Use nvgpu list APIs instead of linux list APIs
for vidmem clear list
Jira NVGPU-13
Change-Id: I13f7c5a54fb199d15ad1402216f3275f0f0474af
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/1454012
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 3cda3034..b1d709f0 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -823,7 +823,7 @@ static int gk20a_init_vidmem(struct mm_gk20a *mm) | |||
823 | 823 | ||
824 | INIT_WORK(&mm->vidmem.clear_mem_worker, gk20a_vidmem_clear_mem_worker); | 824 | INIT_WORK(&mm->vidmem.clear_mem_worker, gk20a_vidmem_clear_mem_worker); |
825 | atomic64_set(&mm->vidmem.bytes_pending, 0); | 825 | atomic64_set(&mm->vidmem.bytes_pending, 0); |
826 | INIT_LIST_HEAD(&mm->vidmem.clear_list_head); | 826 | nvgpu_init_list_node(&mm->vidmem.clear_list_head); |
827 | nvgpu_mutex_init(&mm->vidmem.clear_list_mutex); | 827 | nvgpu_mutex_init(&mm->vidmem.clear_list_mutex); |
828 | 828 | ||
829 | gk20a_dbg_info("registered vidmem: %zu MB", size / SZ_1M); | 829 | gk20a_dbg_info("registered vidmem: %zu MB", size / SZ_1M); |
@@ -3012,7 +3012,7 @@ int gk20a_gmmu_alloc_flags_vid_at(struct gk20a *g, unsigned long flags, | |||
3012 | mem->aperture = APERTURE_VIDMEM; | 3012 | mem->aperture = APERTURE_VIDMEM; |
3013 | mem->allocator = vidmem_alloc; | 3013 | mem->allocator = vidmem_alloc; |
3014 | 3014 | ||
3015 | INIT_LIST_HEAD(&mem->clear_list_entry); | 3015 | nvgpu_init_list_node(&mem->clear_list_entry); |
3016 | 3016 | ||
3017 | gk20a_dbg_fn("done at 0x%llx size %zu", addr, size); | 3017 | gk20a_dbg_fn("done at 0x%llx size %zu", addr, size); |
3018 | 3018 | ||
@@ -3038,8 +3038,8 @@ static void gk20a_gmmu_free_vid(struct gk20a *g, struct mem_desc *mem) | |||
3038 | 3038 | ||
3039 | if (mem->user_mem) { | 3039 | if (mem->user_mem) { |
3040 | nvgpu_mutex_acquire(&g->mm.vidmem.clear_list_mutex); | 3040 | nvgpu_mutex_acquire(&g->mm.vidmem.clear_list_mutex); |
3041 | was_empty = list_empty(&g->mm.vidmem.clear_list_head); | 3041 | was_empty = nvgpu_list_empty(&g->mm.vidmem.clear_list_head); |
3042 | list_add_tail(&mem->clear_list_entry, | 3042 | nvgpu_list_add_tail(&mem->clear_list_entry, |
3043 | &g->mm.vidmem.clear_list_head); | 3043 | &g->mm.vidmem.clear_list_head); |
3044 | atomic64_add(mem->size, &g->mm.vidmem.bytes_pending); | 3044 | atomic64_add(mem->size, &g->mm.vidmem.bytes_pending); |
3045 | nvgpu_mutex_release(&g->mm.vidmem.clear_list_mutex); | 3045 | nvgpu_mutex_release(&g->mm.vidmem.clear_list_mutex); |
@@ -3102,10 +3102,11 @@ static struct mem_desc *get_pending_mem_desc(struct mm_gk20a *mm) | |||
3102 | struct mem_desc *mem = NULL; | 3102 | struct mem_desc *mem = NULL; |
3103 | 3103 | ||
3104 | nvgpu_mutex_acquire(&mm->vidmem.clear_list_mutex); | 3104 | nvgpu_mutex_acquire(&mm->vidmem.clear_list_mutex); |
3105 | mem = list_first_entry_or_null(&mm->vidmem.clear_list_head, | 3105 | if (!nvgpu_list_empty(&mm->vidmem.clear_list_head)) { |
3106 | struct mem_desc, clear_list_entry); | 3106 | mem = nvgpu_list_first_entry(&mm->vidmem.clear_list_head, |
3107 | if (mem) | 3107 | mem_desc, clear_list_entry); |
3108 | list_del_init(&mem->clear_list_entry); | 3108 | nvgpu_list_del(&mem->clear_list_entry); |
3109 | } | ||
3109 | nvgpu_mutex_release(&mm->vidmem.clear_list_mutex); | 3110 | nvgpu_mutex_release(&mm->vidmem.clear_list_mutex); |
3110 | 3111 | ||
3111 | return mem; | 3112 | return mem; |