diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2018-04-02 09:40:42 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-04-04 14:49:46 -0400 |
commit | 89e0745fa024891b988508c3baa20c453230a80b (patch) | |
tree | b59efd3831570c624c9f8b611abb81489346862d /drivers/gpu/nvgpu/gv100 | |
parent | a108d3f0368c72f2d553cac1470531677b5a7b88 (diff) |
gpu: nvgpu: handle misaligned_addr SM exception
We right now do not handle misaligned_addr SM exception explicitly and hence
we incorrectly initiate CILP on this exception
Handle this exception explicitly in this sequence -
- set error notifier first
- clear the interrupt
- return error from gr_gv11b_handle_warp_esr_error_misaligned_addr() so that
RC recovery is triggered by gk20a_gr_isr()
Ensure that the error value is propagated back to gk20a_gr_isr() correctly
Use nvgpu_set_error_notifier_if_empty() to set error notifier since this will
prevent overwriting of error notifier value in case gk20a_gr_isr() also tries
to write to some error notifier value
Bug 200388475
Jira NVGPU-554
Change-Id: I84c4d202a8068e738567ccd344e05d9d5f6ad2f0
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1686781
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv100')
-rw-r--r-- | drivers/gpu/nvgpu/gv100/hal_gv100.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index f0187dab..b38260a5 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c | |||
@@ -517,7 +517,7 @@ static const struct gpu_ops gv100_ops = { | |||
517 | .check_ch_ctxsw_timeout = gk20a_fifo_check_ch_ctxsw_timeout, | 517 | .check_ch_ctxsw_timeout = gk20a_fifo_check_ch_ctxsw_timeout, |
518 | .channel_suspend = gk20a_channel_suspend, | 518 | .channel_suspend = gk20a_channel_suspend, |
519 | .channel_resume = gk20a_channel_resume, | 519 | .channel_resume = gk20a_channel_resume, |
520 | .set_error_notifier = nvgpu_set_error_notifier, | 520 | .set_error_notifier = nvgpu_set_error_notifier_if_empty, |
521 | .setup_sw = gk20a_init_fifo_setup_sw, | 521 | .setup_sw = gk20a_init_fifo_setup_sw, |
522 | #ifdef CONFIG_TEGRA_GK20A_NVHOST | 522 | #ifdef CONFIG_TEGRA_GK20A_NVHOST |
523 | .alloc_syncpt_buf = gv11b_fifo_alloc_syncpt_buf, | 523 | .alloc_syncpt_buf = gv11b_fifo_alloc_syncpt_buf, |