diff options
author | Lauri Peltonen <lpeltonen@nvidia.com> | 2015-05-18 11:46:39 -0700 |
---|---|---|
committer | Alexandre Courbot <acourbot@nvidia.com> | 2015-08-06 13:26:23 +0900 |
commit | 01674822fa5f031a78393e70f3f6c49e09fe785b (patch) | |
tree | 8138c783c4c28a7dc76f62c9df6bbab68f355f04 /drm/nouveau/nvkm | |
parent | c81c88fb050540c7b4a1ab339d74174743d2325f (diff) | |
download | nouveau-01674822fa5f031a78393e70f3f6c49e09fe785b.tar.gz |
mmu: fix sgt mappings that span multiple pde's
Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Diffstat (limited to 'drm/nouveau/nvkm')
-rw-r--r-- | drm/nouveau/nvkm/subdev/mmu/base.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drm/nouveau/nvkm/subdev/mmu/base.c b/drm/nouveau/nvkm/subdev/mmu/base.c index 277b6ec04..00657db69 100644 --- a/drm/nouveau/nvkm/subdev/mmu/base.c +++ b/drm/nouveau/nvkm/subdev/mmu/base.c @@ -112,12 +112,14 @@ nvkm_vm_map_sg_table(struct nvkm_vma *vma, u64 delta, u64 length, pte = 0; } if (m < sglen) { + pgt = vm->pgt[pde].obj[big]; for (; m < sglen; m++) { dma_addr_t addr = sg_dma_address(sg) + (m << PAGE_SHIFT); mmu->map_sg(vma, pgt, mem, pte, 1, &addr); num--; pte++; + /* XXX - We should check for pde overrun here too! */ if (num == 0) goto finish; } |