diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index 6a32d727..821951ad 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |||
@@ -118,12 +118,22 @@ static int gk20a_dbg_gpu_do_dev_open(struct inode *inode, | |||
118 | 118 | ||
119 | init_waitqueue_head(&dbg_session->dbg_events.wait_queue); | 119 | init_waitqueue_head(&dbg_session->dbg_events.wait_queue); |
120 | INIT_LIST_HEAD(&dbg_session->ch_list); | 120 | INIT_LIST_HEAD(&dbg_session->ch_list); |
121 | nvgpu_mutex_init(&dbg_session->ch_list_lock); | 121 | err = nvgpu_mutex_init(&dbg_session->ch_list_lock); |
122 | nvgpu_mutex_init(&dbg_session->ioctl_lock); | 122 | if (err) |
123 | goto err_free_session; | ||
124 | err = nvgpu_mutex_init(&dbg_session->ioctl_lock); | ||
125 | if (err) | ||
126 | goto err_destroy_lock; | ||
123 | dbg_session->dbg_events.events_enabled = false; | 127 | dbg_session->dbg_events.events_enabled = false; |
124 | dbg_session->dbg_events.num_pending_events = 0; | 128 | dbg_session->dbg_events.num_pending_events = 0; |
125 | 129 | ||
126 | return 0; | 130 | return 0; |
131 | |||
132 | err_destroy_lock: | ||
133 | nvgpu_mutex_destroy(&dbg_session->ch_list_lock); | ||
134 | err_free_session: | ||
135 | kfree(dbg_session); | ||
136 | return err; | ||
127 | } | 137 | } |
128 | 138 | ||
129 | /* used in scenarios where the debugger session can take just the inter-session | 139 | /* used in scenarios where the debugger session can take just the inter-session |
@@ -480,6 +490,9 @@ int gk20a_dbg_gpu_dev_release(struct inode *inode, struct file *filp) | |||
480 | nvgpu_dbg_timeout_enable(dbg_s, NVGPU_DBG_GPU_IOCTL_TIMEOUT_ENABLE); | 490 | nvgpu_dbg_timeout_enable(dbg_s, NVGPU_DBG_GPU_IOCTL_TIMEOUT_ENABLE); |
481 | nvgpu_mutex_release(&g->dbg_sessions_lock); | 491 | nvgpu_mutex_release(&g->dbg_sessions_lock); |
482 | 492 | ||
493 | nvgpu_mutex_destroy(&dbg_s->ch_list_lock); | ||
494 | nvgpu_mutex_destroy(&dbg_s->ioctl_lock); | ||
495 | |||
483 | kfree(dbg_s); | 496 | kfree(dbg_s); |
484 | return 0; | 497 | return 0; |
485 | } | 498 | } |