]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
Merge tag 'amd-drm-next-6.11-2024-06-07' of https://gitlab.freedesktop.org/agd5f...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_vram_mgr.c
index eb94f943b28e64d02a19cada2caf5c5a4513be68..f91cc149d06c8802e6cac7ba9dd348c1e7349491 100644 (file)
@@ -504,6 +504,9 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
        if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)
                vres->flags |= DRM_BUDDY_CONTIGUOUS_ALLOCATION;
 
+       if (bo->flags & AMDGPU_GEM_CREATE_VRAM_CLEARED)
+               vres->flags |= DRM_BUDDY_CLEAR_ALLOCATION;
+
        if (fpfn || lpfn != mgr->mm.size)
                /* Allocate blocks in desired range */
                vres->flags |= DRM_BUDDY_RANGE_ALLOCATION;
@@ -582,7 +585,7 @@ static int amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
        return 0;
 
 error_free_blocks:
-       drm_buddy_free_list(mm, &vres->blocks);
+       drm_buddy_free_list(mm, &vres->blocks, 0);
        mutex_unlock(&mgr->lock);
 error_fini:
        ttm_resource_fini(man, &vres->base);
@@ -615,7 +618,7 @@ static void amdgpu_vram_mgr_del(struct ttm_resource_manager *man,
 
        amdgpu_vram_mgr_do_reserve(man);
 
-       drm_buddy_free_list(mm, &vres->blocks);
+       drm_buddy_free_list(mm, &vres->blocks, vres->flags);
        mutex_unlock(&mgr->lock);
 
        atomic64_sub(vis_usage, &mgr->vis_usage);
@@ -923,7 +926,7 @@ void amdgpu_vram_mgr_fini(struct amdgpu_device *adev)
                kfree(rsv);
 
        list_for_each_entry_safe(rsv, temp, &mgr->reserved_pages, blocks) {
-               drm_buddy_free_list(&mgr->mm, &rsv->allocated);
+               drm_buddy_free_list(&mgr->mm, &rsv->allocated, 0);
                kfree(rsv);
        }
        if (!adev->gmc.is_app_apu)
This page took 0.038196 seconds and 4 git commands to generate.