Change-Id: Id8bd4d1ecff9f3ab14355e2dbd1c59b9fe824e01
Signed-off-by: Roger He <hongbo...@amd.com>
---
 drivers/gpu/drm/ttm/ttm_page_alloc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c 
b/drivers/gpu/drm/ttm/ttm_page_alloc.c
index 343db0b..82d40c6 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -444,11 +444,13 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct 
shrink_control *sc)
                pool = &_manager->pools[(i + pool_offset)%NUM_POOLS];
                /* OK to use static buffer since global mutex is held. */
                nr_free_pool = (nr_free >> pool->order);
-               if (nr_free_pool == 0)
-                       continue;
+               if (!nr_free_pool && pool->order)
+                       nr_free_pool = 1;
 
                shrink_pages = ttm_page_pool_free(pool, nr_free_pool, true);
                freed += ((nr_free_pool - shrink_pages) << pool->order);
+               if (freed >= sc->nr_to_scan)
+                       break;
        }
        mutex_unlock(&lock);
        return freed;
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to