287,6 → 287,12 |
} |
|
/* |
* Fail if the page is not writable. |
*/ |
if (!pte->w) |
goto fail; |
|
/* |
* Read the faulting TLB entry. |
*/ |
tlbr(); |
396,7 → 402,7 |
* Check if the mapping exists in page tables. |
*/ |
pte = page_mapping_find(AS, badvaddr); |
if (pte && pte->p && (pte->w || access != PF_ACCESS_WRITE)) { |
if (pte && pte->p) { |
/* |
* Mapping found in page tables. |
* Immediately succeed. |
419,7 → 425,6 |
page_table_lock(AS, true); |
pte = page_mapping_find(AS, badvaddr); |
ASSERT(pte && pte->p); |
ASSERT(pte->w || access != PF_ACCESS_WRITE); |
return pte; |
break; |
case AS_PF_DEFER: |