s390/mm: correct pgtable_bytes on page table downgrade
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Nov 2018 13:04:04 +0000 (14:04 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Nov 2018 13:07:12 +0000 (14:07 +0100)
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>
arch/s390/mm/pgalloc.c

index 814f26520aa2c2439de4e10ce52bf0476c8f2661..6791562779eeca0f6eb6559336a19329de72faff 100644 (file)
@@ -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 |