aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2012-02-17 10:29:21 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-02-17 10:29:33 +0100
commit2320c5793790fcda80e6dcc088dbda86040235e5 (patch)
tree647d98c36f114a48ee02a738c720ed2f8355a9a9 /arch/s390
parent[S390] idle: avoid RCU usage in extended quiescent state (diff)
downloadlinux-dev-2320c5793790fcda80e6dcc088dbda86040235e5.tar.xz
linux-dev-2320c5793790fcda80e6dcc088dbda86040235e5.zip
[S390] incorrect PageTables counter for kvm page tables
The page_table_free_pgste function is used for kvm processes to free page tables that have the pgste extension. It calls pgtable_page_ctor instead of pgtable_page_dtor which increases NR_PAGETABLE instead of decreasing it. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/mm/pgtable.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 9a4d02f64f16..51b0738e13d1 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -574,7 +574,7 @@ static inline void page_table_free_pgste(unsigned long *table)
page = pfn_to_page(__pa(table) >> PAGE_SHIFT);
mp = (struct gmap_pgtable *) page->index;
BUG_ON(!list_empty(&mp->mapper));
- pgtable_page_ctor(page);
+ pgtable_page_dtor(page);
atomic_set(&page->_mapcount, -1);
kfree(mp);
__free_page(page);