diff options
Diffstat (limited to 'arch/um/kernel/trap_kern.c')
-rw-r--r-- | arch/um/kernel/trap_kern.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c index 95c8f8733baf..0d4c10a73607 100644 --- a/arch/um/kernel/trap_kern.c +++ b/arch/um/kernel/trap_kern.c | |||
@@ -95,7 +95,16 @@ survive: | |||
95 | pte = pte_offset_kernel(pmd, address); | 95 | pte = pte_offset_kernel(pmd, address); |
96 | } while(!pte_present(*pte)); | 96 | } while(!pte_present(*pte)); |
97 | err = 0; | 97 | err = 0; |
98 | /* The below warning was added in place of | ||
99 | * pte_mkyoung(); if (is_write) pte_mkdirty(); | ||
100 | * If it's triggered, we'd see normally a hang here (a clean pte is | ||
101 | * marked read-only to emulate the dirty bit). | ||
102 | * However, the generic code can mark a PTE writable but clean on a | ||
103 | * concurrent read fault, triggering this harmlessly. So comment it out. | ||
104 | */ | ||
105 | #if 0 | ||
98 | WARN_ON(!pte_young(*pte) || (is_write && !pte_dirty(*pte))); | 106 | WARN_ON(!pte_young(*pte) || (is_write && !pte_dirty(*pte))); |
107 | #endif | ||
99 | flush_tlb_page(vma, address); | 108 | flush_tlb_page(vma, address); |
100 | out: | 109 | out: |
101 | up_read(&mm->mmap_sem); | 110 | up_read(&mm->mmap_sem); |