Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 77b52f0 in mainline


Ignore:
Timestamp:
2012-03-07T16:09:02Z (10 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master
Children:
609cbf8
Parents:
161fbda
Message:

kernel/frame, arm32/page: PA might start on other addresses than 0, handle it.

Add comments about possible issues.

Location:
kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/mm/page.c

    r161fbda r77b52f0  
    5757        page_table_lock(AS_KERNEL, true);
    5858       
    59         uintptr_t cur;
    60 
    6159        /* Kernel identity mapping */
    62         for (cur = PHYSMEM_START_ADDR;
    63             cur < min(config.identity_size, config.physmem_end);
     60        //FIXME: We need to consider the possibility that
     61        //identity_base > identity_size and physmem_end.
     62        //This might lead to overflow if identity_size is too big.
     63        for (uintptr_t cur = PHYSMEM_START_ADDR;
     64            cur < min(KA2PA(config.identity_base) +
     65                config.identity_size, config.physmem_end);
    6466            cur += FRAME_SIZE)
    6567                page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
  • kernel/generic/src/mm/frame.c

    r161fbda r77b52f0  
    12821282bool frame_adjust_zone_bounds(bool low, uintptr_t *basep, size_t *sizep)
    12831283{
    1284         uintptr_t limit = config.identity_size;
     1284        // FIXME: This might lead to overflow if the identity_size is too big
     1285        // but it is necessary if the PA identity_base > identity_size
     1286        const uintptr_t limit =
     1287            KA2PA(config.identity_base) + config.identity_size;
    12851288
    12861289        if (low) {
Note: See TracChangeset for help on using the changeset viewer.