android_kernel_xiaomi_sm8350/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
..
cmm.c [S390] cmm: remove unused binary sysctls. 2007-11-20 11:13:45 +01:00
extmem.c [S390] dcssblk: add >2G DCSSs support and stacked contiguous DCSSs support. 2008-10-10 21:33:57 +02:00
fault.c [S390] System z large page support. 2008-04-30 13:38:47 +02:00
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
Makefile [S390] guest page hinting light 2008-05-07 09:23:02 +02:00
mmap.c [S390] dynamic page tables. 2008-02-09 18:24:41 +01:00
page-states.c [S390] guest page hinting light 2008-05-07 09:23:02 +02:00
pgtable.c [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
vmem.c [S390] vmemmap: fix off-by-one bug. 2008-06-10 10:03:27 +02:00