mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gpu: nvgpu: fix CERT INT30-C in hal.gr.falcon
Fixed CERT C error with following lines by using nvgpu_safe_add_u32: tag++; --> tag = nvgpu_safe_add_u32(tag, 1U); Fixed CERT C error with following lines by nvgpu_gr_checksum_u32: checksum += ucode_u32_data[i]; --> checksum = nvgpu_gr_checksum_u32(checksum, ucode_u32_data[i]); JIRA NVGPU-3622 Change-Id: Id8808365990033e3527605b989b63a4f6d2826f9 Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2132548 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
6c1f0177ac
commit
d17b2b9622
@@ -27,6 +27,7 @@
|
||||
#include <nvgpu/power_features/pg.h>
|
||||
#include <nvgpu/soc.h>
|
||||
#include <nvgpu/safe_ops.h>
|
||||
#include <nvgpu/gr/gr_utils.h>
|
||||
#include <nvgpu/pmu/pmuif/ctrlclk.h>
|
||||
|
||||
#include "gr_falcon_gm20b.h"
|
||||
@@ -59,7 +60,7 @@ void gm20b_gr_falcon_load_gpccs_dmem(struct gk20a *g,
|
||||
|
||||
for (i = 0; i < ucode_u32_size; i++) {
|
||||
nvgpu_writel(g, gr_gpccs_dmemd_r(0), ucode_u32_data[i]);
|
||||
checksum += ucode_u32_data[i];
|
||||
checksum = nvgpu_gr_checksum_u32(checksum, ucode_u32_data[i]);
|
||||
}
|
||||
nvgpu_log_info(g, "gpccs dmem checksum: 0x%x", checksum);
|
||||
}
|
||||
@@ -77,7 +78,7 @@ void gm20b_gr_falcon_load_fecs_dmem(struct gk20a *g,
|
||||
|
||||
for (i = 0; i < ucode_u32_size; i++) {
|
||||
nvgpu_writel(g, gr_fecs_dmemd_r(0), ucode_u32_data[i]);
|
||||
checksum += ucode_u32_data[i];
|
||||
checksum = nvgpu_gr_checksum_u32(checksum, ucode_u32_data[i]);
|
||||
}
|
||||
nvgpu_log_info(g, "fecs dmem checksum: 0x%x", checksum);
|
||||
}
|
||||
@@ -103,12 +104,12 @@ void gm20b_gr_falcon_load_gpccs_imem(struct gk20a *g,
|
||||
|
||||
for (i = 0; i < ucode_u32_size; i++) {
|
||||
if ((i != 0U) && ((i % (256U/sizeof(u32))) == 0U)) {
|
||||
tag++;
|
||||
tag = nvgpu_safe_add_u32(tag, 1U);
|
||||
nvgpu_writel(g, gr_gpccs_imemt_r(0),
|
||||
gr_gpccs_imemt_tag_f(tag));
|
||||
}
|
||||
nvgpu_writel(g, gr_gpccs_imemd_r(0), ucode_u32_data[i]);
|
||||
checksum += ucode_u32_data[i];
|
||||
checksum = nvgpu_gr_checksum_u32(checksum, ucode_u32_data[i]);
|
||||
}
|
||||
|
||||
pad_start = nvgpu_safe_mult_u32(i, 4U);
|
||||
@@ -118,7 +119,7 @@ void gm20b_gr_falcon_load_gpccs_imem(struct gk20a *g,
|
||||
(i < nvgpu_safe_mult_u32(gpccs_imem_size, 256U)) &&
|
||||
(i < pad_end); i += 4U) {
|
||||
if ((i != 0U) && ((i % 256U) == 0U)) {
|
||||
tag++;
|
||||
tag = nvgpu_safe_add_u32(tag, 1U);
|
||||
nvgpu_writel(g, gr_gpccs_imemt_r(0),
|
||||
gr_gpccs_imemt_tag_f(tag));
|
||||
}
|
||||
@@ -149,12 +150,12 @@ void gm20b_gr_falcon_load_fecs_imem(struct gk20a *g,
|
||||
|
||||
for (i = 0; i < ucode_u32_size; i++) {
|
||||
if ((i != 0U) && ((i % (256U/sizeof(u32))) == 0U)) {
|
||||
tag++;
|
||||
tag = nvgpu_safe_add_u32(tag, 1U);
|
||||
nvgpu_writel(g, gr_fecs_imemt_r(0),
|
||||
gr_fecs_imemt_tag_f(tag));
|
||||
}
|
||||
nvgpu_writel(g, gr_fecs_imemd_r(0), ucode_u32_data[i]);
|
||||
checksum += ucode_u32_data[i];
|
||||
checksum = nvgpu_gr_checksum_u32(checksum, ucode_u32_data[i]);
|
||||
}
|
||||
|
||||
pad_start = nvgpu_safe_mult_u32(i, 4U);
|
||||
@@ -164,7 +165,7 @@ void gm20b_gr_falcon_load_fecs_imem(struct gk20a *g,
|
||||
(i < nvgpu_safe_mult_u32(fecs_imem_size, 256U)) && i < pad_end;
|
||||
i += 4U) {
|
||||
if ((i != 0U) && ((i % 256U) == 0U)) {
|
||||
tag++;
|
||||
tag = nvgpu_safe_add_u32(tag, 1U);
|
||||
nvgpu_writel(g, gr_fecs_imemt_r(0),
|
||||
gr_fecs_imemt_tag_f(tag));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user