summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 3dda1cbf..376a64b0 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -906,7 +906,6 @@ static void gk20a_free_channel(struct channel_gk20a *ch, bool force)
906 struct dbg_session_gk20a *dbg_s; 906 struct dbg_session_gk20a *dbg_s;
907 struct dbg_session_data *session_data, *tmp_s; 907 struct dbg_session_data *session_data, *tmp_s;
908 struct dbg_session_channel_data *ch_data, *tmp; 908 struct dbg_session_channel_data *ch_data, *tmp;
909 bool was_reset;
910 909
911 gk20a_dbg_fn(""); 910 gk20a_dbg_fn("");
912 911
@@ -953,13 +952,12 @@ static void gk20a_free_channel(struct channel_gk20a *ch, bool force)
953 if (g->fifo.deferred_reset_pending) { 952 if (g->fifo.deferred_reset_pending) {
954 gk20a_dbg(gpu_dbg_intr | gpu_dbg_gpu_dbg, "engine reset was" 953 gk20a_dbg(gpu_dbg_intr | gpu_dbg_gpu_dbg, "engine reset was"
955 " deferred, running now"); 954 " deferred, running now");
956 was_reset = mutex_is_locked(&g->fifo.gr_reset_mutex);
957 mutex_lock(&g->fifo.gr_reset_mutex);
958 /* if lock is already taken, a reset is taking place 955 /* if lock is already taken, a reset is taking place
959 so no need to repeat */ 956 so no need to repeat */
960 if (!was_reset) 957 if (mutex_trylock(&g->fifo.gr_reset_mutex)) {
961 gk20a_fifo_deferred_reset(g, ch); 958 gk20a_fifo_deferred_reset(g, ch);
962 mutex_unlock(&g->fifo.gr_reset_mutex); 959 mutex_unlock(&g->fifo.gr_reset_mutex);
960 }
963 } 961 }
964 mutex_unlock(&f->deferred_reset_mutex); 962 mutex_unlock(&f->deferred_reset_mutex);
965 963