drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2
authorChristian König <christian.koenig@amd.com>
Tue, 19 Jan 2016 11:48:14 +0000 (12:48 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 22 Jan 2016 15:47:48 +0000 (10:47 -0500)
We could pin BOs into invisible VRAM otherwise.

v2: make logic more readable as suggested by Michel

Cc: stable@vger.kernel.org
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1)
Reviewed-by: Rex Zhu <Rex.Zhu@amd.com> (v1)
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

index c3ce103b6a33b2ef3a0a6f7f14877e18150ca405..a2a16acee34d3b4658f5317da10a43ea551f899c 100644 (file)
@@ -399,7 +399,8 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
                }
                if (fpfn > bo->placements[i].fpfn)
                        bo->placements[i].fpfn = fpfn;
-               if (lpfn && lpfn < bo->placements[i].lpfn)
+               if (!bo->placements[i].lpfn ||
+                   (lpfn && lpfn < bo->placements[i].lpfn))
                        bo->placements[i].lpfn = lpfn;
                bo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT;
        }