s390/mm: downgrade page table after fork of a 31 bit process
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 26 Jul 2012 06:53:06 +0000 (08:53 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 9 Aug 2012 23:24:54 +0000 (00:24 +0100)
commitf22027d0e8398e377a42a62241137b77a35eda97
tree691aacb8ce4a0fb9a72e95744c54fb00e2767d59
parent60ed9e385606f27c787710bba0dfdb7ff467bdf7
s390/mm: downgrade page table after fork of a 31 bit process

commit 0f6f281b731d20bfe75c13f85d33f3f05b440222 upstream.

The downgrade of the 4 level page table created by init_new_context is
currently done only in start_thread31. If a 31 bit process forks the
new mm uses a 4 level page table, including the task size of 2<<42
that goes along with it. This is incorrect as now a 31 bit process
can map memory beyond 2GB. Define arch_dup_mmap to do the downgrade
after fork.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/s390/include/asm/mmu_context.h
arch/s390/include/asm/processor.h
arch/s390/mm/mmap.c
arch/s390/mm/pgtable.c