aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch
new file mode 100644
index 00000000..04def881
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2055-drm-ttm-fix-ttm_bo_unreserve.patch
@@ -0,0 +1,43 @@
+From af591a03707c8decf015e9d09e81865e39f6ca45 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Tue, 4 Jun 2019 17:07:10 +0200
+Subject: [PATCH 2055/2940] drm/ttm: fix ttm_bo_unreserve
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since we now keep BOs on the LRU we need to explicitely remove
+them from the LRU now after they are pinned.
+
+Change-Id: I19e665dc926ba3539c8499e82520a63a4858f9f1
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ include/drm/ttm/ttm_bo_driver.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
+index 662b823339f5..6652c155902d 100644
+--- a/include/drm/ttm/ttm_bo_driver.h
++++ b/include/drm/ttm/ttm_bo_driver.h
+@@ -774,11 +774,12 @@ static inline int ttm_bo_reserve_slowpath(struct ttm_buffer_object *bo,
+ */
+ static inline void ttm_bo_unreserve(struct ttm_buffer_object *bo)
+ {
+- if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
+- spin_lock(&bo->bdev->glob->lru_lock);
++ spin_lock(&bo->bdev->glob->lru_lock);
++ if (list_empty(&bo->lru))
+ ttm_bo_add_to_lru(bo);
+- spin_unlock(&bo->bdev->glob->lru_lock);
+- }
++ else
++ ttm_bo_move_to_lru_tail(bo, NULL);
++ spin_unlock(&bo->bdev->glob->lru_lock);
+ reservation_object_unlock(bo->resv);
+ }
+
+--
+2.17.1
+