summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
diff options
context:
space:
mode:
authorAshish Srivastava <assrivastava@nvidia.com>2017-07-27 09:29:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-08-02 13:46:29 -0400
commit7c2b4d70ec98f9da123744ffddb413a606cbbd2b (patch)
tree4f31dfa00df48bf55e80427ace7eba608f095754 /drivers/gpu/nvgpu/gv11b/fb_gv11b.c
parentb859393ffee2b9e29fd3a18f6fc78594fed7eda1 (diff)
gpu: nvgpu: gv11b: fix get ptr update for mmu fault buffer
Skipping the last entry makes get ptr 0. This causes HW to think that buffer overflow has happened, but it really hasn't. Due to this issue no further progress is possible as all FB entries beyond get ptr are invalid. Bug 200300788 Change-Id: I7373dfa087cdb7c307aacacf62ef4ca8a0214cf2 Signed-off-by: Ashish Srivastava <assrivastava@nvidia.com> Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1528070 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/fb_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/fb_gv11b.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
index 6626344c..fd63e9ff 100644
--- a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c
@@ -1107,11 +1107,7 @@ static void gv11b_fb_handle_mmu_nonreplay_replay_fault(struct gk20a *g,
1107 1107
1108 gv11b_fb_copy_from_hw_fault_buf(g, mem, offset, mmfault); 1108 gv11b_fb_copy_from_hw_fault_buf(g, mem, offset, mmfault);
1109 1109
1110 /* Extra 1 in buffer size is to detect buffer full. 1110 get_indx = (get_indx + 1) % entries;
1111 * Actual number of entries for faults to be snapped are
1112 * one less than number in fault_buffer_size_val
1113 */
1114 get_indx = (get_indx + 1) % (entries - 1);
1115 nvgpu_log(g, gpu_dbg_intr, "new get index = %d", get_indx); 1111 nvgpu_log(g, gpu_dbg_intr, "new get index = %d", get_indx);
1116 1112
1117 gv11b_fb_fault_buffer_get_ptr_update(g, index, get_indx); 1113 gv11b_fb_fault_buffer_get_ptr_update(g, index, get_indx);