summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2018-11-27 14:04:04 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-11-27 14:07:12 +0100
commit814cedbc0b78d75e335c96da9b9391142eab5600 (patch)
tree62be82c7ba87efd2d8a9669be412c52c6eb71c75 /arch
parent104f708fd1241b22f808bdf066ab67dc5a051de5 (diff)
downloadlinux-stable-814cedbc0b78d75e335c96da9b9391142eab5600.tar.gz
linux-stable-814cedbc0b78d75e335c96da9b9391142eab5600.tar.bz2
linux-stable-814cedbc0b78d75e335c96da9b9391142eab5600.zip
s390/mm: correct pgtable_bytes on page table downgrade
The downgrade of a page table from 3 levels to 2 levels for a 31-bit compat process removes a pmd table which has to be counted against pgtable_bytes. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/mm/pgalloc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c
index 814f26520aa2..6791562779ee 100644
--- a/arch/s390/mm/pgalloc.c
+++ b/arch/s390/mm/pgalloc.c
@@ -131,6 +131,7 @@ void crst_table_downgrade(struct mm_struct *mm)
}
pgd = mm->pgd;
+ mm_dec_nr_pmds(mm);
mm->pgd = (pgd_t *) (pgd_val(*pgd) & _REGION_ENTRY_ORIGIN);
mm->context.asce_limit = _REGION3_SIZE;
mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |