Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 982 → Rev 983

/kernel/trunk/generic/src/mm/as.c
403,8 → 403,8
if (pte && PTE_VALID(pte)) {
ASSERT(PTE_PRESENT(pte));
frame_free(ADDR2PFN(PTE_GET_FRAME(pte)));
page_mapping_remove(as, area->base + i*PAGE_SIZE);
}
page_mapping_remove(as, area->base + i*PAGE_SIZE);
}
/*
* Invalidate TLB's.
412,12 → 412,9
tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base + pages*PAGE_SIZE, area->size - pages);
tlb_invalidate_pages(AS->asid, area->base + pages*PAGE_SIZE, area->size - pages);
tlb_shootdown_finalize();
} else {
/*
* Growing the area.
*/
area->size = size;
}
}
 
area->size = pages;
spinlock_unlock(&area->lock);
spinlock_unlock(&as->lock);
/kernel/trunk/arch/mips32/src/mm/tlb.c
38,6 → 38,7
#include <synch/spinlock.h>
#include <print.h>
#include <debug.h>
#include <align.h>
 
static void tlb_refill_fail(istate_t *istate);
static void tlb_invalid_fail(istate_t *istate);
390,7 → 391,7
 
void prepare_entry_hi(entry_hi_t *hi, asid_t asid, __address addr)
{
hi->value = (((addr/PAGE_SIZE)/2)*PAGE_SIZE*2);
hi->value = ALIGN_DOWN(addr, PAGE_SIZE * 2);
hi->asid = asid;
}
 
513,7 → 514,7
hi_save.value = cp0_entry_hi_read();
ipl = interrupts_disable();
 
for (i = 0; i < cnt; i++) {
for (i = 0; i < cnt+1; i+=2) {
hi.value = 0;
prepare_entry_hi(&hi, asid, page + i * PAGE_SIZE);
cp0_entry_hi_write(hi.value);