aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
context:
space:
mode:
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>2005-09-10 13:44:58 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-10 15:00:18 -0400
commit16b036786a6bd08cf7a91e0cd58219a6717da2a6 (patch)
tree668274402b02623a6380e507b8b7081ed373ca1a /arch/um
parentd129f31236c241c07e583e8bc695c382365d02ce (diff)
[PATCH] uml: avoid already done dirtying
The PTE returned from handle_mm_fault is already marked as dirty and accessed if needed. Also, since this is not set with set_pte() (which sets NEWPAGE and NEWPROT as needed), this wouldn't work anyway. This version has been updated and fixed, thanks to some feedback from Jeff Dike. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/kernel/trap_kern.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c
index d20361dcd127..87cc6fd76ced 100644
--- a/arch/um/kernel/trap_kern.c
+++ b/arch/um/kernel/trap_kern.c
@@ -85,8 +85,7 @@ survive:
85 pte = pte_offset_kernel(pmd, address); 85 pte = pte_offset_kernel(pmd, address);
86 } while(!pte_present(*pte)); 86 } while(!pte_present(*pte));
87 err = 0; 87 err = 0;
88 *pte = pte_mkyoung(*pte); 88 WARN_ON(!pte_young(*pte) || (is_write && !pte_dirty(*pte)));
89 if(pte_write(*pte)) *pte = pte_mkdirty(*pte);
90 flush_tlb_page(vma, address); 89 flush_tlb_page(vma, address);
91out: 90out:
92 up_read(&mm->mmap_sem); 91 up_read(&mm->mmap_sem);