Changeset e32720ff in mainline for kernel/generic/src/mm/as.c
- Timestamp:
- 2012-11-22T22:20:39Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3f6c16fe
- Parents:
- 0ab362c (diff), 908bb96 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
r0ab362c re32720ff 79 79 #include <syscall/copy.h> 80 80 #include <arch/interrupt.h> 81 #include <interrupt.h> 81 82 82 83 /** … … 1362 1363 int as_page_fault(uintptr_t page, pf_access_t access, istate_t *istate) 1363 1364 { 1365 int rc = AS_PF_FAULT; 1366 1364 1367 if (!THREAD) 1365 return AS_PF_FAULT;1368 goto page_fault; 1366 1369 1367 1370 if (!AS) 1368 return AS_PF_FAULT;1371 goto page_fault; 1369 1372 1370 1373 mutex_lock(&AS->lock); … … 1422 1425 * Resort to the backend page fault handler. 1423 1426 */ 1424 if (area->backend->page_fault(area, page, access) != AS_PF_OK) { 1427 rc = area->backend->page_fault(area, page, access); 1428 if (rc != AS_PF_OK) { 1425 1429 page_table_unlock(AS, false); 1426 1430 mutex_unlock(&area->lock); … … 1443 1447 istate_set_retaddr(istate, 1444 1448 (uintptr_t) &memcpy_to_uspace_failover_address); 1449 } else if (rc == AS_PF_SILENT) { 1450 printf("Killing task %" PRIu64 " due to a " 1451 "failed late reservation request.\n", TASK->taskid); 1452 task_kill_self(true); 1445 1453 } else { 1446 return AS_PF_FAULT; 1454 fault_if_from_uspace(istate, "Page fault: %p.", (void *) page); 1455 panic_memtrap(istate, access, page, NULL); 1447 1456 } 1448 1457
Note:
See TracChangeset
for help on using the changeset viewer.