msm: kgsl: Fix nr_removed calculation while reducing pools

Current code is reducing total_pages by pcount for each
loop iteration which results in decrementing total_pages
incorrectly as pcount is total number of pages reduced
in all previous iterations. Incorrect total_pages results
in incorrect nr_removed. Fix this by not decrementing
total_pages and directly accounting for already reduced
pages in nr_removed calculation.

Change-Id: I69485c26f1f98974eecc30caa1a888ddeafe7c73
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
This commit is contained in:
Deepak Kumar 2021-01-19 09:53:27 +05:30
commit 784c9c8212

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
#include <asm/cacheflush.h>
@ -208,9 +208,7 @@ kgsl_pool_reduce(unsigned int target_pages, bool exit)
if (!pool->allocation_allowed && !exit)
continue;
total_pages -= pcount;
nr_removed = total_pages - target_pages;
nr_removed = total_pages - target_pages - pcount;
if (nr_removed <= 0)
return pcount;