diff options
author | Ashish Srivastava <assrivastava@nvidia.com> | 2017-07-27 09:29:03 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-08-02 13:46:29 -0400 |
commit | 7c2b4d70ec98f9da123744ffddb413a606cbbd2b (patch) | |
tree | 4f31dfa00df48bf55e80427ace7eba608f095754 | |
parent | b859393ffee2b9e29fd3a18f6fc78594fed7eda1 (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>
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/fb_gv11b.c | 6 |
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); |