diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-01-11 11:08:24 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-01-11 11:09:04 +1000 |
commit | 09b6145ca607f61472c08807326114e49fa9227b (patch) | |
tree | 75bfde062dcd3f723c65603efed966028a6f3a12 /drm/nouveau/nvkm/subdev | |
parent | 5c546b809288bcd4fbcdd7c6329d79f6ab8d4c82 (diff) | |
download | nouveau-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.c | 6 |
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 * |