summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2016-09-15 22:41:34 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-30 03:38:29 -0400
commitf4be6c43734c29f2be022d43504fb2308b8dbac1 (patch)
tree8225bf1e3657ac47085ef9657f2c638282baf52e /drivers
parent4aef26db1921eab37366f1c79c4bde57b53061dc (diff)
gpu: nvgpu: Cancel timeout handler before job cleanup
Cancel timeout handler before cleaning up the list of jobs. This prevents a race that makes timeout handler access already freed jobs. Bug 1814108 Change-Id: I37cfc408cb1f96b8b0e62db1ca8067a2ae43dd0e Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1221698 (cherry picked from commit be0d146cba8dc2b1bdb7c53ae39188a4bf0ca019) Reviewed-on: http://git-master/r/1223843 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index 5dac72e5..92b43c8a 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -1903,6 +1903,7 @@ static void gk20a_channel_clean_up_jobs(struct work_struct *work)
1903 platform = gk20a_get_platform(g->dev); 1903 platform = gk20a_get_platform(g->dev);
1904 1904
1905 gk20a_channel_cancel_job_clean_up(c, false); 1905 gk20a_channel_cancel_job_clean_up(c, false);
1906 gk20a_channel_timeout_stop(c);
1906 1907
1907 while (1) { 1908 while (1) {
1908 bool completed; 1909 bool completed;