powerpc/pseries/cmm: Use adjust_managed_page_count() insted of totalram_pages_*
authorDavid Hildenbrand <david@redhat.com>
Thu, 31 Oct 2019 14:29:26 +0000 (15:29 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 13 Nov 2019 05:58:01 +0000 (16:58 +1100)
adjust_managed_page_count() performs a totalram_pages_add(), but also
adjusts the managed pages of the zone. Let's use that instead, similar
to virtio-balloon. Use it before freeing a page.

Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191031142933.10779-6-david@redhat.com
arch/powerpc/platforms/pseries/cmm.c

index 33d31e4..f82c468 100644 (file)
@@ -164,7 +164,7 @@ static long cmm_alloc_pages(long nr)
 
                list_add(&page->lru, &cmm_page_list);
                loaned_pages++;
-               totalram_pages_dec();
+               adjust_managed_page_count(page, -1);
                spin_unlock(&cmm_lock);
                nr--;
        }
@@ -191,10 +191,10 @@ static long cmm_free_pages(long nr)
                        break;
                plpar_page_set_active(page);
                list_del(&page->lru);
+               adjust_managed_page_count(page, 1);
                __free_page(page);
                loaned_pages--;
                nr--;
-               totalram_pages_inc();
        }
        spin_unlock(&cmm_lock);
        cmm_dbg("End request with %ld pages unfulfilled\n", nr);
@@ -518,10 +518,10 @@ static int cmm_mem_going_offline(void *arg)
                        continue;
                plpar_page_set_active(page);
                list_del(&page->lru);
+               adjust_managed_page_count(page, 1);
                __free_page(page);
                freed++;
                loaned_pages--;
-               totalram_pages_inc();
        }
 
        spin_unlock(&cmm_lock);