]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/nouveau/imem/nv50: prevent fast-path for mapped objects when BAR isn't ready
authorBen Skeggs <bskeggs@redhat.com>
Tue, 31 Oct 2017 17:56:19 +0000 (03:56 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 2 Nov 2017 03:32:19 +0000 (13:32 +1000)
Another piece of solving the "GP100 BAR2 VMM bootstrap" puzzle.

Without doing this, we'd attempt to write PDEs for the lower page table
levels through BAR2 before BAR2 access has been fully initialised.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c

index ec2904a0e9fcdd171c8ab671562918047c3b74a7..1a254e69feceda5351aba692df128931c052807e 100644 (file)
@@ -196,9 +196,11 @@ nv50_instobj_acquire(struct nvkm_memory *memory)
        }
 
        /* Attempt to get a direct CPU mapping of the object. */
-       if (!iobj->map && (vmm = nvkm_bar_bar2_vmm(imem->subdev.device)))
-               nv50_instobj_kmap(iobj, vmm);
-       map = iobj->map;
+       if ((vmm = nvkm_bar_bar2_vmm(imem->subdev.device))) {
+               if (!iobj->map)
+                       nv50_instobj_kmap(iobj, vmm);
+               map = iobj->map;
+       }
 
        if (!refcount_inc_not_zero(&iobj->maps)) {
                if (map)