linux-stable-rt/arch/s390/mm
Christian Borntraeger 250cf776f7 [S390] pgtables: Fix race in enable_sie vs. page table ops
The current enable_sie code sets the mm->context.pgstes bit to tell
dup_mm that the new mm should have extended page tables. This bit is also
used by the s390 specific page table primitives to decide about the page
table layout - which means context.pgstes has two meanings. This can cause
any kind of bugs. For example  - e.g. shrink_zone can call
ptep_clear_flush_young while enable_sie is running. ptep_clear_flush_young
will test for context.pgstes. Since enable_sie changed that value of the old
struct mm without changing the page table layout ptep_clear_flush_young will
do the wrong thing.
The solution is to split pgstes into two bits
- one for the allocation
- one for the current state

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-10-28 11:12:03 +01:00
..
Makefile
cmm.c
extmem.c [S390] dcssblk: add >2G DCSSs support and stacked contiguous DCSSs support. 2008-10-10 21:33:57 +02:00
fault.c
hugetlbpage.c hugetlb: introduce pud_huge 2008-07-24 10:47:18 -07:00
init.c mm: cleanup to make remove_memory() arch-neutral 2008-10-20 08:50:25 -07:00
mmap.c
page-states.c
pgtable.c [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
vmem.c