diff options
author | Konsta Holtta <kholtta@nvidia.com> | 2016-05-25 06:24:37 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-06 11:03:11 -0400 |
commit | 822b0dc53823e9c5bc3cbcdc78a62cc2c7f0647c (patch) | |
tree | e1fd040a0f2fb47005c487d5544d667f2c3a986e /drivers/gpu/nvgpu | |
parent | 4dd4587f1734f06d1bc2173a282fcd7a10613d58 (diff) |
gpu: nvgpu: fix patch write error check in update_ctxsw_preemption_mode
Don't attempt to access memory if the patch context can't be mapped, but
print an error message instead.
Change-Id: I2d0ec22378ace0ef826f5a84a9ce4d35466f7832
Signed-off-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-on: http://git-master/r/1157281
GVS: Gerrit_Virtual_Submit
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/gr_gv11b.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c index cb9c1902..ad8e4eff 100644 --- a/drivers/gpu/nvgpu/gv11b/gr_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gr_gv11b.c | |||
@@ -998,6 +998,11 @@ static void gr_gv11b_update_ctxsw_preemption_mode(struct gk20a *g, | |||
998 | gr_ctx->t18x.preempt_ctxsw_buffer.gpu_va >> 8); | 998 | gr_ctx->t18x.preempt_ctxsw_buffer.gpu_va >> 8); |
999 | 999 | ||
1000 | err = gr_gk20a_ctx_patch_write_begin(g, ch_ctx); | 1000 | err = gr_gk20a_ctx_patch_write_begin(g, ch_ctx); |
1001 | if (err) { | ||
1002 | gk20a_err(dev_from_gk20a(g), | ||
1003 | "can't map patch context"); | ||
1004 | goto out; | ||
1005 | } | ||
1001 | 1006 | ||
1002 | addr = (u64_lo32(gr_ctx->t18x.betacb_ctxsw_buffer.gpu_va) >> | 1007 | addr = (u64_lo32(gr_ctx->t18x.betacb_ctxsw_buffer.gpu_va) >> |
1003 | gr_gpcs_setup_attrib_cb_base_addr_39_12_align_bits_v()) | | 1008 | gr_gpcs_setup_attrib_cb_base_addr_39_12_align_bits_v()) | |
@@ -1049,6 +1054,7 @@ static void gr_gv11b_update_ctxsw_preemption_mode(struct gk20a *g, | |||
1049 | gr_gk20a_ctx_patch_write_end(g, ch_ctx); | 1054 | gr_gk20a_ctx_patch_write_end(g, ch_ctx); |
1050 | } | 1055 | } |
1051 | 1056 | ||
1057 | out: | ||
1052 | gk20a_dbg_fn("done"); | 1058 | gk20a_dbg_fn("done"); |
1053 | } | 1059 | } |
1054 | 1060 | ||