Changeset a35b458 in mainline for kernel/generic/src/mm/backend_elf.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/backend_elf.c
r3061bc1 ra35b458 102 102 if (area->pages <= nonanon_pages) 103 103 return true; 104 104 105 105 return reserve_try_alloc(area->pages - nonanon_pages); 106 106 } … … 123 123 reserve_free(nonanon_pages - new_pages); 124 124 } 125 125 126 126 return true; 127 127 } … … 166 166 cur = cur->next) { 167 167 unsigned int i; 168 168 169 169 node = list_get_instance(cur, btree_node_t, leaf_link); 170 170 171 171 for (i = 0; i < node->keys; i++) { 172 172 uintptr_t base = node->key[i]; 173 173 size_t count = (size_t) node->value[i]; 174 174 unsigned int j; 175 175 176 176 /* 177 177 * Skip read-only areas of used space that are backed … … 182 182 base + P2SZ(count) <= start_anon) 183 183 continue; 184 184 185 185 for (j = 0; j < count; j++) { 186 186 pte_t pte; 187 187 bool found; 188 188 189 189 /* 190 190 * Skip read-only pages that are backed by the … … 195 195 base + P2SZ(j + 1) <= start_anon) 196 196 continue; 197 197 198 198 page_table_lock(area->as, false); 199 199 found = page_mapping_find(area->as, … … 212 212 frame_reference_add(pfn); 213 213 } 214 214 215 215 } 216 216 } … … 267 267 if (!as_area_check_access(area, access)) 268 268 return AS_PF_FAULT; 269 269 270 270 if (upage < ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) 271 271 return AS_PF_FAULT; 272 272 273 273 if (upage >= entry->p_vaddr + entry->p_memsz) 274 274 return AS_PF_FAULT; 275 275 276 276 i = (upage - ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) >> PAGE_WIDTH; 277 277 base = (uintptr_t) … … 288 288 * The address space area is shared. 289 289 */ 290 290 291 291 frame = (uintptr_t) btree_search(&area->sh_info->pagemap, 292 292 upage - area->base, &leaf);
Note:
See TracChangeset
for help on using the changeset viewer.