The pool->size_class[i] is assigned with the i from (zs_size_classes - 1) to 0. So if we failed in zs_create_pool(), we only need to iterate from (zs_size_classes - 1) to i, instead of from 0 to (zs_size_classes - 1) Signed-off-by: Ganesh Mahendran <opensource.ganesh@xxxxxxxxx> Cc: Nitin Gupta <ngupta@xxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> --- mm/zsmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 16617e9..e6fa3da 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -1433,12 +1433,12 @@ void zs_destroy_pool(struct zs_pool *pool) zs_pool_stat_destroy(pool); - for (i = 0; i < zs_size_classes; i++) { + for (i = zs_size_classes - 1; i >= 0; i--) { int fg; struct size_class *class = pool->size_class[i]; if (!class) - continue; + break; if (class->index != i) continue; -- 1.7.9.5 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>