summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/tsg_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/tsg_gk20a.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c b/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
index 7c65c695..d4ece147 100644
--- a/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/tsg_gk20a.c
@@ -165,6 +165,9 @@ int gk20a_tsg_dev_open(struct inode *inode, struct file *filp)
165 tsg->g = g; 165 tsg->g = g;
166 tsg->num_runnable_channels = 0; 166 tsg->num_runnable_channels = 0;
167 167
168 tsg->tsg_gr_ctx = NULL;
169 tsg->vm = NULL;
170
168 filp->private_data = tsg; 171 filp->private_data = tsg;
169 172
170 gk20a_dbg(gpu_dbg_fn, "tsg opened %d\n", tsg->tsgid); 173 gk20a_dbg(gpu_dbg_fn, "tsg opened %d\n", tsg->tsgid);
@@ -185,6 +188,13 @@ int gk20a_tsg_dev_release(struct inode *inode, struct file *filp)
185 return -EBUSY; 188 return -EBUSY;
186 } 189 }
187 190
191 if (tsg->tsg_gr_ctx) {
192 gr_gk20a_free_tsg_gr_ctx(tsg);
193 tsg->tsg_gr_ctx = NULL;
194 }
195 if (tsg->vm)
196 tsg->vm = NULL;
197
188 release_used_tsg(&g->fifo, tsg); 198 release_used_tsg(&g->fifo, tsg);
189 199
190 gk20a_dbg(gpu_dbg_fn, "tsg released %d\n", tsg->tsgid); 200 gk20a_dbg(gpu_dbg_fn, "tsg released %d\n", tsg->tsgid);