From e80d74b8102d54ba68e21c7d0cbae77184a95e9d Mon Sep 17 00:00:00 2001 From: Sagar Kamble Date: Tue, 31 May 2022 15:21:13 +0530 Subject: [PATCH] gpu: nvgpu: validate return of nvgpu_tsg_get_sm_error_state nvgpu_tsg_get_sm_error_state already checks the sm_id and tsg->sm_error_state. No need to check these before calling nvgpu_tsg_get_sm_error_state. CID 484927 CID 299106 Bug 3512546 Change-Id: I02a05d8686cf7027cfc271f470198e7985dc4e16 Signed-off-by: Sagar Kamble Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2722470 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: Sachin Nikam GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/os/linux/ioctl_dbg.c | 13 ++++--------- drivers/gpu/nvgpu/os/linux/ioctl_tsg.c | 9 ++++----- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c b/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c index 96654fdfb..0cd47be85 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c @@ -283,8 +283,6 @@ static int nvgpu_dbg_gpu_ioctl_read_single_sm_error_state( struct nvgpu_tsg *tsg; u32 sm_id; int err = 0; - struct nvgpu_gr_config *gr_config = - nvgpu_gr_get_gpu_instance_config_ptr(g, dbg_s->gpu_instance_id); ch = nvgpu_dbg_gpu_get_session_channel(dbg_s); if (ch == NULL) { @@ -298,17 +296,14 @@ static int nvgpu_dbg_gpu_ioctl_read_single_sm_error_state( } sm_id = args->sm_id; - if (sm_id >= nvgpu_gr_config_get_no_of_sm(gr_config)) { - return -EINVAL; - } - - if (tsg->sm_error_states == NULL) { - return -EINVAL; - } nvgpu_speculation_barrier(); sm_error_state = nvgpu_tsg_get_sm_error_state(tsg, sm_id); + if (sm_error_state == NULL) { + return -EINVAL; + } + sm_error_state_record.hww_global_esr = sm_error_state->hww_global_esr; sm_error_state_record.hww_warp_esr = diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c index 1fc0c64e2..50fc20620 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c @@ -629,17 +629,16 @@ static int gk20a_tsg_ioctl_read_single_sm_error_state(struct gk20a *g, struct nvgpu_tsg_sm_error_state_record sm_error_state_record; u32 sm_id; int err = 0; - struct nvgpu_gr_config *gr_config; - gr_config = nvgpu_gr_get_gpu_instance_config_ptr(g, gpu_instance_id); sm_id = args->sm_id; - if (sm_id >= nvgpu_gr_config_get_no_of_sm(gr_config)) { - return -EINVAL; - } nvgpu_speculation_barrier(); sm_error_state = nvgpu_tsg_get_sm_error_state(tsg, sm_id); + if (sm_error_state == NULL) { + return -EINVAL; + } + sm_error_state_record.global_esr = sm_error_state->hww_global_esr; sm_error_state_record.warp_esr =