@@ -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);
adjust_managed_page_count() performs a totalram_pages_add(), but also adjust the managed pages of the zone. Let's use that instead, similar to virtio-balloon. Use it before freeing a page. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Pavel Tatashin <pasha.tatashin@soleen.com> Cc: Richard Fontana <rfontana@redhat.com> Cc: Allison Randal <allison@lohutok.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Arun KS <arunks@codeaurora.org> Signed-off-by: David Hildenbrand <david@redhat.com> --- arch/powerpc/platforms/pseries/cmm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)