summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/as_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/as_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/as_gk20a.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
index 1d604b83..42fa2167 100644
--- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
@@ -73,6 +73,7 @@ static int gk20a_as_alloc_share(struct gk20a_as *as,
73 */ 73 */
74int gk20a_as_release_share(struct gk20a_as_share *as_share) 74int gk20a_as_release_share(struct gk20a_as_share *as_share)
75{ 75{
76 struct gk20a *g = as_share->vm->mm->g;
76 int err; 77 int err;
77 78
78 gk20a_dbg_fn(""); 79 gk20a_dbg_fn("");
@@ -80,7 +81,10 @@ int gk20a_as_release_share(struct gk20a_as_share *as_share)
80 if (atomic_dec_return(&as_share->ref_cnt) > 0) 81 if (atomic_dec_return(&as_share->ref_cnt) > 0)
81 return 0; 82 return 0;
82 83
84 gk20a_busy(g->dev);
83 err = gk20a_vm_release_share(as_share); 85 err = gk20a_vm_release_share(as_share);
86 gk20a_idle(g->dev);
87
84 release_as_share_id(as_share->as, as_share->id); 88 release_as_share_id(as_share->as, as_share->id);
85 kfree(as_share); 89 kfree(as_share);
86 return err; 90 return err;