diff options
Diffstat (limited to 'drivers/gpu/nvgpu/os')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/ioctl_dbg.c | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c b/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c index 1eace94b..953b7168 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_dbg.c | |||
@@ -260,78 +260,6 @@ static int nvgpu_dbg_gpu_ioctl_timeout(struct dbg_session_gk20a *dbg_s, | |||
260 | return err; | 260 | return err; |
261 | } | 261 | } |
262 | 262 | ||
263 | static int nvgpu_dbg_gpu_ioctl_write_single_sm_error_state( | ||
264 | struct dbg_session_gk20a *dbg_s, | ||
265 | struct nvgpu_dbg_gpu_write_single_sm_error_state_args *args) | ||
266 | { | ||
267 | struct gk20a *g = dbg_s->g; | ||
268 | struct gr_gk20a *gr = &g->gr; | ||
269 | u32 sm_id; | ||
270 | struct channel_gk20a *ch; | ||
271 | struct nvgpu_dbg_gpu_sm_error_state_record sm_error_state_record; | ||
272 | struct nvgpu_tsg_sm_error_state sm_error_state; | ||
273 | int err = 0; | ||
274 | |||
275 | /* Not currently supported in the virtual case */ | ||
276 | if (g->is_virtual) { | ||
277 | return -ENOSYS; | ||
278 | } | ||
279 | |||
280 | ch = nvgpu_dbg_gpu_get_session_channel(dbg_s); | ||
281 | if (ch == NULL) { | ||
282 | return -EINVAL; | ||
283 | } | ||
284 | |||
285 | sm_id = args->sm_id; | ||
286 | if (sm_id >= gr->no_of_sm) { | ||
287 | return -EINVAL; | ||
288 | } | ||
289 | |||
290 | nvgpu_speculation_barrier(); | ||
291 | |||
292 | if (args->sm_error_state_record_size > 0) { | ||
293 | size_t read_size = sizeof(sm_error_state_record); | ||
294 | |||
295 | if (read_size > args->sm_error_state_record_size) | ||
296 | read_size = args->sm_error_state_record_size; | ||
297 | |||
298 | nvgpu_mutex_acquire(&g->dbg_sessions_lock); | ||
299 | err = copy_from_user(&sm_error_state_record, | ||
300 | (void __user *)(uintptr_t) | ||
301 | args->sm_error_state_record_mem, | ||
302 | read_size); | ||
303 | nvgpu_mutex_release(&g->dbg_sessions_lock); | ||
304 | if (err != 0) { | ||
305 | return -ENOMEM; | ||
306 | } | ||
307 | } | ||
308 | |||
309 | err = gk20a_busy(g); | ||
310 | if (err != 0) { | ||
311 | return err; | ||
312 | } | ||
313 | |||
314 | sm_error_state.hww_global_esr = | ||
315 | sm_error_state_record.hww_global_esr; | ||
316 | sm_error_state.hww_warp_esr = | ||
317 | sm_error_state_record.hww_warp_esr; | ||
318 | sm_error_state.hww_warp_esr_pc = | ||
319 | sm_error_state_record.hww_warp_esr_pc; | ||
320 | sm_error_state.hww_global_esr_report_mask = | ||
321 | sm_error_state_record.hww_global_esr_report_mask; | ||
322 | sm_error_state.hww_warp_esr_report_mask = | ||
323 | sm_error_state_record.hww_warp_esr_report_mask; | ||
324 | |||
325 | err = gr_gk20a_elpg_protected_call(g, | ||
326 | g->ops.gr.update_sm_error_state(g, ch, | ||
327 | sm_id, &sm_error_state)); | ||
328 | |||
329 | gk20a_idle(g); | ||
330 | |||
331 | return err; | ||
332 | } | ||
333 | |||
334 | |||
335 | static int nvgpu_dbg_gpu_ioctl_read_single_sm_error_state( | 263 | static int nvgpu_dbg_gpu_ioctl_read_single_sm_error_state( |
336 | struct dbg_session_gk20a *dbg_s, | 264 | struct dbg_session_gk20a *dbg_s, |
337 | struct nvgpu_dbg_gpu_read_single_sm_error_state_args *args) | 265 | struct nvgpu_dbg_gpu_read_single_sm_error_state_args *args) |
@@ -2066,11 +1994,6 @@ long gk20a_dbg_gpu_dev_ioctl(struct file *filp, unsigned int cmd, | |||
2066 | (struct nvgpu_dbg_gpu_clear_single_sm_error_state_args *)buf); | 1994 | (struct nvgpu_dbg_gpu_clear_single_sm_error_state_args *)buf); |
2067 | break; | 1995 | break; |
2068 | 1996 | ||
2069 | case NVGPU_DBG_GPU_IOCTL_WRITE_SINGLE_SM_ERROR_STATE: | ||
2070 | err = nvgpu_dbg_gpu_ioctl_write_single_sm_error_state(dbg_s, | ||
2071 | (struct nvgpu_dbg_gpu_write_single_sm_error_state_args *)buf); | ||
2072 | break; | ||
2073 | |||
2074 | case NVGPU_DBG_GPU_IOCTL_UNBIND_CHANNEL: | 1997 | case NVGPU_DBG_GPU_IOCTL_UNBIND_CHANNEL: |
2075 | err = dbg_unbind_channel_gk20a(dbg_s, | 1998 | err = dbg_unbind_channel_gk20a(dbg_s, |
2076 | (struct nvgpu_dbg_gpu_unbind_channel_args *)buf); | 1999 | (struct nvgpu_dbg_gpu_unbind_channel_args *)buf); |