diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_dbg.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/ioctl_dbg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c b/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c index ebb869c3..eb6156da 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_dbg.c | |||
@@ -256,6 +256,8 @@ static int nvgpu_dbg_gpu_ioctl_write_single_sm_error_state( | |||
256 | if (sm_id >= gr->no_of_sm) | 256 | if (sm_id >= gr->no_of_sm) |
257 | return -EINVAL; | 257 | return -EINVAL; |
258 | 258 | ||
259 | nvgpu_speculation_barrier(); | ||
260 | |||
259 | if (args->sm_error_state_record_size > 0) { | 261 | if (args->sm_error_state_record_size > 0) { |
260 | size_t read_size = sizeof(sm_error_state_record); | 262 | size_t read_size = sizeof(sm_error_state_record); |
261 | 263 | ||
@@ -312,6 +314,8 @@ static int nvgpu_dbg_gpu_ioctl_read_single_sm_error_state( | |||
312 | if (sm_id >= gr->no_of_sm) | 314 | if (sm_id >= gr->no_of_sm) |
313 | return -EINVAL; | 315 | return -EINVAL; |
314 | 316 | ||
317 | nvgpu_speculation_barrier(); | ||
318 | |||
315 | sm_error_state = gr->sm_error_states + sm_id; | 319 | sm_error_state = gr->sm_error_states + sm_id; |
316 | sm_error_state_record.hww_global_esr = | 320 | sm_error_state_record.hww_global_esr = |
317 | sm_error_state->hww_global_esr; | 321 | sm_error_state->hww_global_esr; |
@@ -1432,10 +1436,11 @@ static int nvgpu_dbg_gpu_ioctl_clear_single_sm_error_state( | |||
1432 | return -EINVAL; | 1436 | return -EINVAL; |
1433 | 1437 | ||
1434 | sm_id = args->sm_id; | 1438 | sm_id = args->sm_id; |
1435 | |||
1436 | if (sm_id >= gr->no_of_sm) | 1439 | if (sm_id >= gr->no_of_sm) |
1437 | return -EINVAL; | 1440 | return -EINVAL; |
1438 | 1441 | ||
1442 | nvgpu_speculation_barrier(); | ||
1443 | |||
1439 | err = gk20a_busy(g); | 1444 | err = gk20a_busy(g); |
1440 | if (err) | 1445 | if (err) |
1441 | return err; | 1446 | return err; |