diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_prof.c b/drivers/gpu/nvgpu/os/linux/ioctl_prof.c index d4fd21723..b9dd69f63 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_prof.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_prof.c @@ -415,6 +415,12 @@ static int nvgpu_prof_ioctl_exec_reg_ops(struct nvgpu_profiler_object_priv *priv return -EINVAL; } + err = gk20a_busy(g); + if (err != 0) { + nvgpu_err(g, "failed to poweron"); + return -EINVAL; + } + if (args->mode == NVGPU_PROFILER_EXEC_REG_OPS_ARG_MODE_CONTINUE_ON_ERROR) { flags |= NVGPU_REG_OP_FLAG_MODE_CONTINUE_ON_ERROR; } else { @@ -494,6 +500,8 @@ static int nvgpu_prof_ioctl_exec_reg_ops(struct nvgpu_profiler_object_priv *priv "REG_OPS for handle %u complete: count=%u mode=%u flags=0x%x err=%d", prof->prof_handle, args->count, args->mode, args->flags, err); + gk20a_idle(g); + return err; }