summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 04d68872..a2846d2a 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -513,6 +513,7 @@ static void gk20a_remove_fifo_support(struct fifo_gk20a *f)
513 */ 513 */
514 for (; i < f->num_channels; i++) { 514 for (; i < f->num_channels; i++) {
515 struct channel_gk20a *c = f->channel + i; 515 struct channel_gk20a *c = f->channel + i;
516 struct tsg_gk20a *tsg = f->tsg + i;
516 517
517 /* 518 /*
518 * Could race but worst that happens is we get an error message 519 * Could race but worst that happens is we get an error message
@@ -520,6 +521,21 @@ static void gk20a_remove_fifo_support(struct fifo_gk20a *f)
520 */ 521 */
521 if (c->referenceable) 522 if (c->referenceable)
522 __gk20a_channel_kill(c); 523 __gk20a_channel_kill(c);
524
525 nvgpu_mutex_destroy(&tsg->event_id_list_lock);
526
527 nvgpu_mutex_destroy(&c->ioctl_lock);
528 nvgpu_mutex_destroy(&c->error_notifier_mutex);
529 nvgpu_mutex_destroy(&c->joblist.cleanup_lock);
530 nvgpu_mutex_destroy(&c->joblist.pre_alloc.read_lock);
531 nvgpu_mutex_destroy(&c->sync_lock);
532#if defined(CONFIG_GK20A_CYCLE_STATS)
533 nvgpu_mutex_destroy(&c->cyclestate.cyclestate_buffer_mutex);
534 nvgpu_mutex_destroy(&c->cs_client_mutex);
535#endif
536 nvgpu_mutex_destroy(&c->event_id_list_lock);
537 nvgpu_mutex_destroy(&c->dbg_s_lock);
538
523 } 539 }
524 540
525 vfree(f->channel); 541 vfree(f->channel);