Changes in kernel/arch/ppc32/src/mm/pht.c [38dc82d:1dbc43f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/mm/pht.c
r38dc82d r1dbc43f 49 49 * @param access Access mode that caused the fault. 50 50 * @param istate Pointer to interrupted state. 51 * @param[out] pte Structure that will receive a copy of the found PTE. 52 * 53 * @return True if the mapping was found, false otherwise. 54 * 55 */ 56 static bool find_mapping_and_check(as_t *as, uintptr_t badvaddr, int access, 57 istate_t *istate, pte_t *pte) 51 * 52 * @return PTE on success, NULL otherwise. 53 * 54 */ 55 static pte_t *find_mapping_and_check(as_t *as, uintptr_t badvaddr, int access, 56 istate_t *istate) 58 57 { 59 58 /* 60 59 * Check if the mapping exists in page tables. 61 60 */ 62 bool found = page_mapping_find(as, badvaddr, true, pte);63 if ( found && pte->present) {61 pte_t *pte = page_mapping_find(as, badvaddr, true); 62 if ((pte) && (pte->present)) { 64 63 /* 65 64 * Mapping found in page tables. 66 65 * Immediately succeed. 67 66 */ 68 return true;67 return pte; 69 68 } 70 69 /* … … 77 76 * The mapping ought to be in place. 78 77 */ 79 found = page_mapping_find(as, badvaddr, true, pte); 80 81 ASSERT(found); 82 ASSERT(pte->present); 83 84 return found; 85 } 86 87 return false; 78 pte = page_mapping_find(as, badvaddr, true); 79 ASSERT((pte) && (pte->present)); 80 return pte; 81 } 82 83 return NULL; 88 84 } 89 85 … … 186 182 badvaddr = istate->pc; 187 183 188 pte_t pte; 189 bool found = find_mapping_and_check(AS, badvaddr, 190 PF_ACCESS_READ /* FIXME */, istate, &pte); 191 192 if (found) { 184 pte_t *pte = find_mapping_and_check(AS, badvaddr, 185 PF_ACCESS_READ /* FIXME */, istate); 186 187 if (pte) { 193 188 /* Record access to PTE */ 194 pte .accessed = 1;195 pht_insert(badvaddr, &pte);189 pte->accessed = 1; 190 pht_insert(badvaddr, pte); 196 191 } 197 192 }
Note:
See TracChangeset
for help on using the changeset viewer.