diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/fb_gv11b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gv11b/fb_gv11b.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c index 9301ebc6..75045800 100644 --- a/drivers/gpu/nvgpu/gv11b/fb_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/fb_gv11b.c | |||
@@ -1376,6 +1376,7 @@ static void gv11b_fb_handle_mmu_fault_common(struct gk20a *g, | |||
1376 | unsigned int id_type; | 1376 | unsigned int id_type; |
1377 | u32 num_lce, act_eng_bitmask = 0; | 1377 | u32 num_lce, act_eng_bitmask = 0; |
1378 | int err = 0; | 1378 | int err = 0; |
1379 | u32 id = ((u32)~0); | ||
1379 | 1380 | ||
1380 | if (!mmfault->valid) | 1381 | if (!mmfault->valid) |
1381 | return; | 1382 | return; |
@@ -1417,10 +1418,13 @@ static void gv11b_fb_handle_mmu_fault_common(struct gk20a *g, | |||
1417 | nvgpu_log(g, gpu_dbg_intr, "UNBOUND INST BLOCK MMU FAULT"); | 1418 | nvgpu_log(g, gpu_dbg_intr, "UNBOUND INST BLOCK MMU FAULT"); |
1418 | 1419 | ||
1419 | } else if (mmfault->refch) { | 1420 | } else if (mmfault->refch) { |
1420 | if (gk20a_is_channel_marked_as_tsg(mmfault->refch)) | 1421 | if (gk20a_is_channel_marked_as_tsg(mmfault->refch)) { |
1422 | id = mmfault->refch->tsgid; | ||
1421 | id_type = ID_TYPE_TSG; | 1423 | id_type = ID_TYPE_TSG; |
1422 | else | 1424 | } else { |
1425 | id = mmfault->chid; | ||
1423 | id_type = ID_TYPE_CHANNEL; | 1426 | id_type = ID_TYPE_CHANNEL; |
1427 | } | ||
1424 | } else { | 1428 | } else { |
1425 | id_type = ID_TYPE_UNKNOWN; | 1429 | id_type = ID_TYPE_UNKNOWN; |
1426 | } | 1430 | } |
@@ -1428,7 +1432,7 @@ static void gv11b_fb_handle_mmu_fault_common(struct gk20a *g, | |||
1428 | act_eng_bitmask = BIT(mmfault->faulted_engine); | 1432 | act_eng_bitmask = BIT(mmfault->faulted_engine); |
1429 | 1433 | ||
1430 | g->ops.fifo.teardown_ch_tsg(g, act_eng_bitmask, | 1434 | g->ops.fifo.teardown_ch_tsg(g, act_eng_bitmask, |
1431 | mmfault->chid, id_type, RC_TYPE_MMU_FAULT, mmfault); | 1435 | id, id_type, RC_TYPE_MMU_FAULT, mmfault); |
1432 | } else { | 1436 | } else { |
1433 | err = gv11b_fb_fix_page_fault(g, mmfault); | 1437 | err = gv11b_fb_fix_page_fault(g, mmfault); |
1434 | if (err) { | 1438 | if (err) { |