drm/ttm: fix incorrect calculate on shrink_pages
authorMonk Liu <Monk.Liu@amd.com>
Fri, 1 Dec 2017 10:21:34 +0000 (18:21 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Dec 2017 20:39:20 +0000 (15:39 -0500)
shrink_pages is in unit of Order after ttm_page_pool_free,
but it is used by nr_free in next round so need change
it into native page unit

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Roger He <Hongbo.He@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/ttm/ttm_page_alloc.c

index 44343a2..71945cc 100644 (file)
@@ -455,6 +455,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
                freed += (nr_free_pool - shrink_pages) << pool->order;
                if (freed >= sc->nr_to_scan)
                        break;
+               shrink_pages <<= pool->order;
        }
        mutex_unlock(&lock);
        return freed;