radeon: Unmap vram pages when reclocking
[deliverable/linux.git] / drivers / gpu / drm / radeon / radeon_object.c
index 6a8617bac1429400105b626d796f86029f7c132d..06def708b014100c6d935ce82b1a4ea92e94f2d0 100644 (file)
@@ -112,9 +112,11 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
 
        radeon_ttm_placement_from_domain(bo, domain);
        /* Kernel allocation are uninterruptible */
+       mutex_lock(&rdev->vram_mutex);
        r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
                        &bo->placement, 0, 0, !kernel, NULL, size,
                        &radeon_ttm_bo_destroy);
+       mutex_unlock(&rdev->vram_mutex);
        if (unlikely(r != 0)) {
                if (r != -ERESTARTSYS)
                        dev_err(rdev->dev,
@@ -170,7 +172,9 @@ void radeon_bo_unref(struct radeon_bo **bo)
        if ((*bo) == NULL)
                return;
        tbo = &((*bo)->tbo);
+       mutex_lock(&(*bo)->rdev->vram_mutex);
        ttm_bo_unref(&tbo);
+       mutex_unlock(&(*bo)->rdev->vram_mutex);
        if (tbo == NULL)
                *bo = NULL;
 }
This page took 0.026102 seconds and 5 git commands to generate.