summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/gr_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/gr_vgpu.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
index 7dfc970e..b259a0c3 100644
--- a/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/gr_vgpu.c
@@ -851,9 +851,12 @@ int vgpu_init_gr_support(struct gk20a *g)
851int vgpu_gr_isr(struct gk20a *g, struct tegra_vgpu_gr_intr_info *info) 851int vgpu_gr_isr(struct gk20a *g, struct tegra_vgpu_gr_intr_info *info)
852{ 852{
853 struct fifo_gk20a *f = &g->fifo; 853 struct fifo_gk20a *f = &g->fifo;
854 struct channel_gk20a *ch = &f->channel[info->chid]; 854 struct channel_gk20a *ch = gk20a_channel_get(&f->channel[info->chid]);
855 855
856 gk20a_dbg_fn(""); 856 gk20a_dbg_fn("");
857 if (!ch)
858 return 0;
859
857 if (info->type != TEGRA_VGPU_GR_INTR_NOTIFY && 860 if (info->type != TEGRA_VGPU_GR_INTR_NOTIFY &&
858 info->type != TEGRA_VGPU_GR_INTR_SEMAPHORE) 861 info->type != TEGRA_VGPU_GR_INTR_SEMAPHORE)
859 gk20a_err(dev_from_gk20a(g), "gr intr (%d) on ch %u", 862 gk20a_err(dev_from_gk20a(g), "gr intr (%d) on ch %u",
@@ -899,6 +902,7 @@ int vgpu_gr_isr(struct gk20a *g, struct tegra_vgpu_gr_intr_info *info)
899 break; 902 break;
900 } 903 }
901 904
905 gk20a_channel_put(ch);
902 return 0; 906 return 0;
903} 907}
904 908