diff --git a/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_ga10b_fusa.c b/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_ga10b_fusa.c index 610646df8..b535e5d50 100644 --- a/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_ga10b_fusa.c +++ b/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_ga10b_fusa.c @@ -122,7 +122,7 @@ void ga10b_runlist_write_state(struct gk20a *g, u32 runlists_mask, reg_val = runlist_sched_disable_runlist_enabled_v(); } - while (runlists_mask != 0U) { + while (runlists_mask != 0U && (runlist_id < g->fifo.max_runlists)) { if ((runlists_mask & BIT32(runlist_id)) != 0U) { runlist = g->fifo.runlists[runlist_id]; nvgpu_runlist_writel(g, runlist, diff --git a/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_gk20a_fusa.c b/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_gk20a_fusa.c index f0942a7ff..a92ce6fbb 100644 --- a/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_gk20a_fusa.c +++ b/drivers/gpu/nvgpu/hal/fifo/runlist_fifo_gk20a_fusa.c @@ -96,7 +96,7 @@ void gk20a_runlist_write_state(struct gk20a *g, u32 runlists_mask, u32 reg_mask = 0U; u32 i = 0U; - while (runlists_mask != 0U) { + while (runlists_mask != 0U && (i < g->fifo.max_runlists)) { if ((runlists_mask & BIT32(i)) != 0U) { reg_mask |= fifo_sched_disable_runlist_m(i); }