From 0deeb6b2f85fe8489925a48c6d5f37e175767e3f Mon Sep 17 00:00:00 2001 From: Vinod G Date: Fri, 13 Sep 2019 12:59:35 -0700 Subject: [PATCH] gpu: nvgpu: Fix misra 4.7 errors in gr ecc unit Fix misra 4.7 violations in gr ecc unit misra_c_2012_directive_4_7_violation: return error information hasn't been tested. jira NVGPU-4054 Change-Id: I6e10a637f45886667de733827444526216061cc7 Signed-off-by: Vinod G Reviewed-on: https://git-master.nvidia.com/r/2197398 Reviewed-by: Prateek Sethi Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-misra GVS: Gerrit_Virtual_Submit Reviewed-by: Deepak Nibade Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/hal/gr/ecc/ecc_gp10b.c | 69 ++++--------------- drivers/gpu/nvgpu/hal/gr/ecc/ecc_gv11b_fusa.c | 60 +++------------- drivers/gpu/nvgpu/include/nvgpu/ecc.h | 11 ++- 3 files changed, 35 insertions(+), 105 deletions(-) diff --git a/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gp10b.c b/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gp10b.c index a9269c8a5..19a5a38fc 100644 --- a/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gp10b.c +++ b/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gp10b.c @@ -126,66 +126,27 @@ void gp10b_ecc_detect_enabled_units(struct gk20a *g) static int gp10b_ecc_init_tpc_sm(struct gk20a *g) { - int err = 0; + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_single_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_double_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_sec_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_sed_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_ded_count); - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_single_err_count); - if (err != 0) { - goto init_tpc_sm_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_double_err_count); - if (err != 0) { - goto init_tpc_sm_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_sec_count); - if (err != 0) { - goto init_tpc_sm_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_sed_count); - if (err != 0) { - goto init_tpc_sm_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_shm_ecc_ded_count); - -init_tpc_sm_err: - return err; + return 0; } static int gp10b_ecc_init_tpc_tex(struct gk20a *g) { - int err = 0; + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_sec_pipe0_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_ded_pipe0_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_sec_pipe0_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_ded_pipe0_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_sec_pipe1_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_ded_pipe1_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_sec_pipe1_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_ded_pipe1_count); - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_sec_pipe0_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_ded_pipe0_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_sec_pipe0_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_ded_pipe0_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_sec_pipe1_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_ecc_total_ded_pipe1_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_sec_pipe1_count); - if (err != 0) { - goto init_tpc_tex_err; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(tex_unique_ecc_ded_pipe1_count); - -init_tpc_tex_err: - return err; + return 0; } static int gp10b_ecc_init_tpc(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gv11b_fusa.c b/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gv11b_fusa.c index 7f7098b4d..cb89a6f0e 100644 --- a/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gv11b_fusa.c +++ b/drivers/gpu/nvgpu/hal/gr/ecc/ecc_gv11b_fusa.c @@ -482,56 +482,18 @@ void gv11b_ecc_detect_enabled_units(struct gk20a *g) static int gv11b_ecc_init_tpc(struct gk20a *g) { - int err = 0; + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_single_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_double_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_l1_tag_ecc_corrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_l1_tag_ecc_uncorrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_cbu_ecc_corrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_cbu_ecc_uncorrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_l1_data_ecc_corrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_l1_data_ecc_uncorrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_icache_ecc_corrected_err_count); + NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_icache_ecc_uncorrected_err_count); - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_single_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC(sm_lrf_ecc_double_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_l1_tag_ecc_corrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_l1_tag_ecc_uncorrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_cbu_ecc_corrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_cbu_ecc_uncorrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_l1_data_ecc_corrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_l1_data_ecc_uncorrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_icache_ecc_corrected_err_count); - if (err != 0) { - goto init_tpc_done; - } - err = NVGPU_ECC_COUNTER_INIT_PER_TPC( - sm_icache_ecc_uncorrected_err_count); - -init_tpc_done: - return err; + return 0; } static int gv11b_ecc_init_gpc(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/include/nvgpu/ecc.h b/drivers/gpu/nvgpu/include/nvgpu/ecc.h index 3d2727397..10b9f3a67 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/ecc.h +++ b/drivers/gpu/nvgpu/include/nvgpu/ecc.h @@ -123,8 +123,15 @@ struct nvgpu_ecc { int nvgpu_ecc_counter_init_per_tpc(struct gk20a *g, struct nvgpu_ecc_stat ***stat, const char *name); -#define NVGPU_ECC_COUNTER_INIT_PER_TPC(stat) \ - nvgpu_ecc_counter_init_per_tpc(g, &g->ecc.gr.stat, #stat) +#define NVGPU_ECC_COUNTER_INIT_PER_TPC(stat) \ + do { \ + int err = 0; \ + err = nvgpu_ecc_counter_init_per_tpc(g, \ + &g->ecc.gr.stat, #stat);\ + if (err != 0) { \ + return err; \ + } \ + } while (false) int nvgpu_ecc_counter_init_per_gpc(struct gk20a *g, struct nvgpu_ecc_stat **stat, const char *name);