mirror of
https://github.com/drasko/codezero.git
synced 2026-02-06 23:13:15 +01:00
Fixed the problem that mm0 would read registers from actual MR0
instead of MR_UNUSED_START.
This commit is contained in:
@@ -47,7 +47,7 @@ void handle_requests(void)
|
||||
|
||||
/* Read mrs not used by syslib */
|
||||
for (int i = 0; i < MR_UNUSED_TOTAL; i++)
|
||||
mr[i] = read_mr(i);
|
||||
mr[i] = read_mr(MR_UNUSED_START + i);
|
||||
|
||||
switch(tag) {
|
||||
case L4_IPC_TAG_WAIT:
|
||||
|
||||
@@ -51,5 +51,9 @@ void set_generic_fault_params(struct fault_data *fault)
|
||||
else
|
||||
BUG();
|
||||
}
|
||||
printf("%s: Handling %s fault (%s abort) from %d. fault @ 0x%x\n",
|
||||
__TASKNAME__, (fault->reason & VM_READ) ? "read" : "write",
|
||||
is_prefetch_abort(fault->kdata->fsr) ? "prefetch" : "data",
|
||||
fault->task->tid, fault->address);
|
||||
}
|
||||
|
||||
|
||||
@@ -118,7 +118,8 @@ int do_file_page(struct fault_data *fault)
|
||||
BUG_ON(!list_empty(&page->list));
|
||||
list_add(&page->list, &page->owner->page_cache_list);
|
||||
spin_unlock(&page->lock);
|
||||
|
||||
printf("%s: Mapped new page @ 0x%x to task: %d\n", __TASKNAME__,
|
||||
fault->address, fault->task->tid);
|
||||
/* Upgrade RO page to non-cow write */
|
||||
} else if ((reason & VM_WRITE) && (pte_flags & VM_READ)
|
||||
&& !(vma_flags & VMA_COW)) {
|
||||
@@ -457,7 +458,6 @@ void page_fault_handler(l4id_t sender, fault_kdata_t *fkdata)
|
||||
.kdata = fkdata,
|
||||
};
|
||||
|
||||
printf("%s: Handling fault from %d.\n", __TASKNAME__, sender);
|
||||
BUG_ON(sender == 0);
|
||||
|
||||
/* Get pager specific task info */
|
||||
|
||||
Reference in New Issue
Block a user