Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/mm/as_pt.c

    rf18d01b6 r9d58539  
    7373pte_t *ptl0_create(unsigned int flags)
    7474{
    75         pte_t *dst_ptl0 = (pte_t *)
    76             PA2KA(frame_alloc(PTL0_FRAMES, FRAME_LOWMEM, PTL0_SIZE - 1));
     75        pte_t *dst_ptl0 = (pte_t *) frame_alloc(PTL0_SIZE,
     76            FRAME_LOWMEM | FRAME_KA);
     77        size_t table_size = FRAME_SIZE << PTL0_SIZE;
    7778       
    7879        if (flags & FLAG_AS_KERNEL)
    79                 memsetb(dst_ptl0, PTL0_SIZE, 0);
     80                memsetb(dst_ptl0, table_size, 0);
    8081        else {
    8182                /*
    8283                 * Copy the kernel address space portion to new PTL0.
     84                 *
    8385                 */
    8486               
     
    9395                    &dst_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)];
    9496               
    95                 memsetb(dst_ptl0, PTL0_SIZE, 0);
     97                memsetb(dst_ptl0, table_size, 0);
    9698                memcpy((void *) dst, (void *) src,
    97                     PTL0_SIZE - (src - (uintptr_t) src_ptl0));
     99                    table_size - (src - (uintptr_t) src_ptl0));
    98100               
    99101                mutex_unlock(&AS_KERNEL->lock);
     
    112114void ptl0_destroy(pte_t *page_table)
    113115{
    114         frame_free((uintptr_t) page_table, PTL0_FRAMES);
     116        frame_free((uintptr_t) page_table);
    115117}
    116118
Note: See TracChangeset for help on using the changeset viewer.