diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4890-drm-amdgpu-Warn-and-update-pin_size-values-when-dest.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4890-drm-amdgpu-Warn-and-update-pin_size-values-when-dest.patch | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4890-drm-amdgpu-Warn-and-update-pin_size-values-when-dest.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4890-drm-amdgpu-Warn-and-update-pin_size-values-when-dest.patch deleted file mode 100644 index e3da7ea6..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4890-drm-amdgpu-Warn-and-update-pin_size-values-when-dest.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 398cee6e91a6e4dc849e126ae3582da85ea1bbf7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> -Date: Wed, 11 Jul 2018 12:42:55 +0200 -Subject: [PATCH 4890/5725] drm/amdgpu: Warn and update pin_size values when - destroying a pinned BO -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This shouldn't happen, but if it does, we'll get a backtrace of the -caller, and update the pin_size values as needed. - -v2: -* Check bo->pin_count instead of placement flags (Christian König) - -Reviewed-by: Christian König <christian.koenig@amd.com> -Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Raveendra Talabattula <raveendra.talabattula@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 33 +++++++++++++++++++++++------- - 1 file changed, 26 insertions(+), 7 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c -index b483732..aecee98 100755 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c -@@ -63,6 +63,27 @@ static bool amdgpu_need_backup(struct amdgpu_device *adev) - return true; - } - -+/** -+ * amdgpu_bo_subtract_pin_size - Remove BO from pin_size accounting -+ * -+ * @bo: &amdgpu_bo buffer object -+ * -+ * This function is called when a BO stops being pinned, and updates the -+ * &amdgpu_device pin_size values accordingly. -+ */ -+static void amdgpu_bo_subtract_pin_size(struct amdgpu_bo *bo) -+{ -+ struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); -+ -+ if (bo->tbo.mem.mem_type == TTM_PL_VRAM) { -+ atomic64_sub(amdgpu_bo_size(bo), &adev->vram_pin_size); -+ atomic64_sub(amdgpu_vram_mgr_bo_visible_size(bo), -+ &adev->visible_pin_size); -+ } else if (bo->tbo.mem.mem_type == TTM_PL_TT) { -+ atomic64_sub(amdgpu_bo_size(bo), &adev->gart_pin_size); -+ } -+} -+ - static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) - { - struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev); -@@ -71,6 +92,10 @@ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) - - if (bo->tbo.mem.mem_type == AMDGPU_PL_DGMA_IMPORT) - kfree(tbo->mem.bus.addr); -+ -+ if (WARN_ON_ONCE(bo->pin_count > 0)) -+ amdgpu_bo_subtract_pin_size(bo); -+ - if (bo->kfd_bo) - amdgpu_amdkfd_unreserve_system_memory_limit(bo); - -@@ -1008,13 +1033,7 @@ int amdgpu_bo_unpin(struct amdgpu_bo *bo) - if (bo->pin_count) - return 0; - -- if (bo->tbo.mem.mem_type == TTM_PL_VRAM) { -- atomic64_sub(amdgpu_bo_size(bo), &adev->vram_pin_size); -- atomic64_sub(amdgpu_vram_mgr_bo_visible_size(bo), -- &adev->visible_pin_size); -- } else if (bo->tbo.mem.mem_type == TTM_PL_TT) { -- atomic64_sub(amdgpu_bo_size(bo), &adev->gart_pin_size); -- } -+ amdgpu_bo_subtract_pin_size(bo); - - for (i = 0; i < bo->placement.num_placement; i++) { - bo->placements[i].lpfn = 0; --- -2.7.4 - |