diff --git a/drivers/gpu/nvgpu/common/gr/fecs_trace.c b/drivers/gpu/nvgpu/common/gr/fecs_trace.c index f1b049723..bc53604f2 100644 --- a/drivers/gpu/nvgpu/common/gr/fecs_trace.c +++ b/drivers/gpu/nvgpu/common/gr/fecs_trace.c @@ -163,6 +163,10 @@ int nvgpu_gr_fecs_trace_deinit(struct gk20a *g) { struct nvgpu_gr_fecs_trace *trace = g->fecs_trace; + if (trace == NULL) { + return 0; + } + /* * Check if tracer was enabled before attempting to stop the * tracer thread. diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_pstate.c b/drivers/gpu/nvgpu/common/pmu/pmu_pstate.c index 0a70242c2..cf7430379 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_pstate.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_pstate.c @@ -48,15 +48,21 @@ void nvgpu_pmu_pstate_deinit(struct gk20a *g) { pmgr_pmu_free_pmupstate(g); nvgpu_therm_pmu_free_pmupstate(g, g->pmu); - nvgpu_perf_pmu_free_pmupstate(g); - nvgpu_clk_domain_free_pmupstate(g); - nvgpu_clk_prog_free_pmupstate(g); - nvgpu_clk_vf_point_free_pmupstate(g); - nvgpu_clk_freq_domain_free_pmupstate(g); - nvgpu_clk_freq_controller_free_pmupstate(g); - nvgpu_clk_fll_free_pmupstate(g); - nvgpu_clk_vin_free_pmupstate(g); - nvgpu_clk_free_pmupstate(g); + + if (g->perf_pmu != NULL) { + nvgpu_perf_pmu_free_pmupstate(g); + } + + if (g->pmu->clk_pmu != NULL) { + nvgpu_clk_domain_free_pmupstate(g); + nvgpu_clk_prog_free_pmupstate(g); + nvgpu_clk_vf_point_free_pmupstate(g); + nvgpu_clk_freq_domain_free_pmupstate(g); + nvgpu_clk_freq_controller_free_pmupstate(g); + nvgpu_clk_fll_free_pmupstate(g); + nvgpu_clk_vin_free_pmupstate(g); + nvgpu_clk_free_pmupstate(g); + } if (g->ops.clk.mclk_deinit != NULL) { g->ops.clk.mclk_deinit(g);