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 =