diff --git a/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gp10b.c b/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gp10b.c index b7ee37efe..c02bb53cb 100644 --- a/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gp10b.c +++ b/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gp10b.c @@ -79,8 +79,8 @@ void gp10b_ltc_intr_handle_lts_interrupts(struct gk20a *g, u32 ltc, u32 slice) "Double bit error detected in GPU L2!"); ecc_stats_reg_val = - nvgpu_readl(g, - ltc_ltc0_lts0_dstg_ecc_report_r() + offset); + nvgpu_readl(g, nvgpu_safe_add_u32( + ltc_ltc0_lts0_dstg_ecc_report_r(), offset)); g->ecc.ltc.ecc_ded_count[ltc][slice].counter = nvgpu_safe_add_u32( g->ecc.ltc.ecc_ded_count[ltc][slice].counter, diff --git a/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gv11b.c b/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gv11b.c index 32da405f6..91fff2b22 100644 --- a/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gv11b.c +++ b/drivers/gpu/nvgpu/hal/ltc/intr/ltc_intr_gv11b.c @@ -154,9 +154,14 @@ static void gv11b_ltc_intr_handle_lts_interrupts(struct gk20a *g, ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_total_s()); } - g->ecc.ltc.ecc_sec_count[ltc][slice].counter += corrected_delta; - g->ecc.ltc.ecc_ded_count[ltc][slice].counter += - uncorrected_delta; + g->ecc.ltc.ecc_sec_count[ltc][slice].counter = + nvgpu_safe_add_u32( + g->ecc.ltc.ecc_sec_count[ltc][slice].counter, + corrected_delta); + g->ecc.ltc.ecc_ded_count[ltc][slice].counter = + nvgpu_safe_add_u32( + g->ecc.ltc.ecc_ded_count[ltc][slice].counter, + uncorrected_delta); nvgpu_log(g, gpu_dbg_intr, "ltc:%d lts: %d cache ecc interrupt intr: 0x%x", ltc, slice, ltc_intr3);