summaryrefslogtreecommitdiff
path: root/drm/nouveau/nvkm/subdev
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-01-11 11:08:24 +1000
committerBen Skeggs <bskeggs@redhat.com>2016-01-11 11:09:04 +1000
commit09b6145ca607f61472c08807326114e49fa9227b (patch)
tree75bfde062dcd3f723c65603efed966028a6f3a12 /drm/nouveau/nvkm/subdev
parent5c546b809288bcd4fbcdd7c6329d79f6ab8d4c82 (diff)
downloadnouveau-09b6145ca607f61472c08807326114e49fa9227b.tar.gz
drm-next c11b8989635166c5a1e6aac1853a847bd664f8db
gr/nv40: fix oops in interrupt handler fdo#93557 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm/nouveau/nvkm/subdev')
-rw-r--r--drm/nouveau/nvkm/subdev/instmem/gk20a.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drm/nouveau/nvkm/subdev/instmem/gk20a.c b/drm/nouveau/nvkm/subdev/instmem/gk20a.c
index fc419bb8e..14107b5b7 100644
--- a/drm/nouveau/nvkm/subdev/instmem/gk20a.c
+++ b/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -133,18 +133,24 @@ gk20a_instobj_size(struct nvkm_memory *memory)
static void __iomem *
gk20a_instobj_cpu_map_dma(struct nvkm_memory *memory)
{
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
struct gk20a_instobj_dma *node = gk20a_instobj_dma(memory);
struct device *dev = node->base.imem->base.subdev.device->dev;
int npages = nvkm_memory_size(memory) >> 12;
struct page *pages[npages];
int i;
+ /* we shouldn't see a gk20a on anything but arm/arm64 anyways */
/* phys_to_page does not exist on all platforms... */
pages[0] = pfn_to_page(dma_to_phys(dev, node->handle) >> PAGE_SHIFT);
for (i = 1; i < npages; i++)
pages[i] = pages[0] + i;
return vmap(pages, npages, VM_MAP, pgprot_writecombine(PAGE_KERNEL));
+#else
+ BUG();
+ return NULL;
+#endif
}
static void __iomem *