summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
diff options
context:
space:
mode:
authorDebarshi Dutta <ddutta@nvidia.com>2017-08-08 02:38:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-08-24 04:10:37 -0400
commit3fa47b877db1edc16018d662e7b9915d92354745 (patch)
treec1d9a8734e7d92b5ae647fbc3f582a01207a23f6 /drivers/gpu/nvgpu/gk20a/sched_gk20a.c
parent8662fae334f2419da2e7fd220f7734217ec52433 (diff)
gpu: nvgpu: Replace kref for refcounting in nvgpu
- added wrapper struct nvgpu_ref over nvgpu_atomic_t - added nvgpu_ref_* APIs to access the above struct JIRA NVGPU-140 Change-Id: Id47f897995dd4721751f7610b6d4d4fbfe4d6b9a Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1540899 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/sched_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/sched_gk20a.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
index 014848ba..ac54addd 100644
--- a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
@@ -189,7 +189,7 @@ static int gk20a_sched_dev_ioctl_get_params(struct gk20a_sched_ctrl *sched,
189 return -EINVAL; 189 return -EINVAL;
190 190
191 tsg = &f->tsg[tsgid]; 191 tsg = &f->tsg[tsgid];
192 if (!kref_get_unless_zero(&tsg->refcount)) 192 if (!nvgpu_ref_get_unless_zero(&tsg->refcount))
193 return -ENXIO; 193 return -ENXIO;
194 194
195 arg->pid = tsg->tgid; /* kernel tgid corresponds to user pid */ 195 arg->pid = tsg->tgid; /* kernel tgid corresponds to user pid */
@@ -206,7 +206,7 @@ static int gk20a_sched_dev_ioctl_get_params(struct gk20a_sched_ctrl *sched,
206 arg->compute_preempt_mode = 0; 206 arg->compute_preempt_mode = 0;
207 } 207 }
208 208
209 kref_put(&tsg->refcount, gk20a_tsg_release); 209 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
210 210
211 return 0; 211 return 0;
212} 212}
@@ -227,7 +227,7 @@ static int gk20a_sched_dev_ioctl_tsg_set_timeslice(
227 return -EINVAL; 227 return -EINVAL;
228 228
229 tsg = &f->tsg[tsgid]; 229 tsg = &f->tsg[tsgid];
230 if (!kref_get_unless_zero(&tsg->refcount)) 230 if (!nvgpu_ref_get_unless_zero(&tsg->refcount))
231 return -ENXIO; 231 return -ENXIO;
232 232
233 err = gk20a_busy(g); 233 err = gk20a_busy(g);
@@ -239,7 +239,7 @@ static int gk20a_sched_dev_ioctl_tsg_set_timeslice(
239 gk20a_idle(g); 239 gk20a_idle(g);
240 240
241done: 241done:
242 kref_put(&tsg->refcount, gk20a_tsg_release); 242 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
243 243
244 return err; 244 return err;
245} 245}
@@ -260,7 +260,7 @@ static int gk20a_sched_dev_ioctl_tsg_set_runlist_interleave(
260 return -EINVAL; 260 return -EINVAL;
261 261
262 tsg = &f->tsg[tsgid]; 262 tsg = &f->tsg[tsgid];
263 if (!kref_get_unless_zero(&tsg->refcount)) 263 if (!nvgpu_ref_get_unless_zero(&tsg->refcount))
264 return -ENXIO; 264 return -ENXIO;
265 265
266 err = gk20a_busy(g); 266 err = gk20a_busy(g);
@@ -272,7 +272,7 @@ static int gk20a_sched_dev_ioctl_tsg_set_runlist_interleave(
272 gk20a_idle(g); 272 gk20a_idle(g);
273 273
274done: 274done:
275 kref_put(&tsg->refcount, gk20a_tsg_release); 275 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
276 276
277 return err; 277 return err;
278} 278}
@@ -320,7 +320,7 @@ static int gk20a_sched_dev_ioctl_get_tsg(struct gk20a_sched_ctrl *sched,
320 return -EINVAL; 320 return -EINVAL;
321 321
322 tsg = &f->tsg[tsgid]; 322 tsg = &f->tsg[tsgid];
323 if (!kref_get_unless_zero(&tsg->refcount)) 323 if (!nvgpu_ref_get_unless_zero(&tsg->refcount))
324 return -ENXIO; 324 return -ENXIO;
325 325
326 nvgpu_mutex_acquire(&sched->status_lock); 326 nvgpu_mutex_acquire(&sched->status_lock);
@@ -328,7 +328,7 @@ static int gk20a_sched_dev_ioctl_get_tsg(struct gk20a_sched_ctrl *sched,
328 nvgpu_warn(g, "tsgid=%d already referenced", tsgid); 328 nvgpu_warn(g, "tsgid=%d already referenced", tsgid);
329 /* unlock status_lock as gk20a_tsg_release locks it */ 329 /* unlock status_lock as gk20a_tsg_release locks it */
330 nvgpu_mutex_release(&sched->status_lock); 330 nvgpu_mutex_release(&sched->status_lock);
331 kref_put(&tsg->refcount, gk20a_tsg_release); 331 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
332 return -ENXIO; 332 return -ENXIO;
333 } 333 }
334 334
@@ -364,7 +364,7 @@ static int gk20a_sched_dev_ioctl_put_tsg(struct gk20a_sched_ctrl *sched,
364 nvgpu_mutex_release(&sched->status_lock); 364 nvgpu_mutex_release(&sched->status_lock);
365 365
366 tsg = &f->tsg[tsgid]; 366 tsg = &f->tsg[tsgid];
367 kref_put(&tsg->refcount, gk20a_tsg_release); 367 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
368 368
369 return 0; 369 return 0;
370} 370}
@@ -507,7 +507,7 @@ int gk20a_sched_dev_release(struct inode *inode, struct file *filp)
507 for (tsgid = 0; tsgid < f->num_channels; tsgid++) { 507 for (tsgid = 0; tsgid < f->num_channels; tsgid++) {
508 if (NVGPU_SCHED_ISSET(tsgid, sched->ref_tsg_bitmap)) { 508 if (NVGPU_SCHED_ISSET(tsgid, sched->ref_tsg_bitmap)) {
509 tsg = &f->tsg[tsgid]; 509 tsg = &f->tsg[tsgid];
510 kref_put(&tsg->refcount, gk20a_tsg_release); 510 nvgpu_ref_put(&tsg->refcount, gk20a_tsg_release);
511 } 511 }
512 } 512 }
513 513