Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1043 → Rev 1044

/kernel/trunk/arch/ia64/src/mm/tlb.c
423,6 → 423,7
pte_t *t;
va = istate->cr_ifa; /* faulting address */
page_table_lock(AS, true);
t = page_mapping_find(AS, va);
if (t) {
/*
430,11 → 431,14
* Insert it into data translation cache.
*/
itc_pte_copy(t);
page_table_unlock(AS, true);
} else {
/*
* Forward the page fault to address space page fault handler.
*/
page_table_unlock(AS, true);
if (!as_page_fault(va)) {
page_table_unlock(AS, true);
panic("%s: va=%P, rid=%d\n", __FUNCTION__, istate->cr_ifa, rr.map.rid);
}
}
466,6 → 470,7
}
}
 
page_table_lock(AS, true);
t = page_mapping_find(AS, va);
if (t) {
/*
473,10 → 478,12
* Insert it into data translation cache.
*/
dtc_pte_copy(t);
page_table_unlock(AS, true);
} else {
/*
* Forward the page fault to address space page fault handler.
*/
page_table_unlock(AS, true);
if (!as_page_fault(va)) {
panic("%s: va=%P, rid=%d, iip=%P\n", __FUNCTION__, va, rid, istate->cr_iip);
}
504,6 → 511,7
{
pte_t *t;
 
page_table_lock(AS, true);
t = page_mapping_find(AS, istate->cr_ifa);
ASSERT(t && t->p);
if (t && t->p) {
514,6 → 522,7
t->d = true;
dtc_pte_copy(t);
}
page_table_unlock(AS, true);
}
 
/** Instruction access bit fault handler.
525,6 → 534,7
{
pte_t *t;
 
page_table_lock(AS, true);
t = page_mapping_find(AS, istate->cr_ifa);
ASSERT(t && t->p);
if (t && t->p) {
535,6 → 545,7
t->a = true;
itc_pte_copy(t);
}
page_table_unlock(AS, true);
}
 
/** Data access bit fault handler.
546,6 → 557,7
{
pte_t *t;
 
page_table_lock(AS, true);
t = page_mapping_find(AS, istate->cr_ifa);
ASSERT(t && t->p);
if (t && t->p) {
556,6 → 568,7
t->a = true;
dtc_pte_copy(t);
}
page_table_unlock(AS, true);
}
 
/** Page not present fault handler.
570,6 → 583,7
pte_t *t;
va = istate->cr_ifa; /* faulting address */
page_table_lock(AS, true);
t = page_mapping_find(AS, va);
ASSERT(t);
582,7 → 596,9
itc_pte_copy(t);
else
dtc_pte_copy(t);
page_table_unlock(AS, true);
} else {
page_table_unlock(AS, true);
if (!as_page_fault(va)) {
panic("%s: va=%P, rid=%d\n", __FUNCTION__, va, rr.map.rid);
}