Changeset 9117ef9b in mainline


Ignore:
Timestamp:
2012-01-16T22:38:45Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7943c43
Parents:
a538808
Message:

Restrict the e820 table entries to 32-bits on ia32.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/mm/frame.c

    ra538808 r9117ef9b  
    5454       
    5555        for (i = 0; i < e820counter; i++) {
    56                 uintptr_t base = (uintptr_t) e820table[i].base_address;
    57                 size_t size = (size_t) e820table[i].size;
     56                uint64_t base64 = e820table[i].base_address;
     57                uint64_t size64 = e820table[i].size;
     58
     59#ifdef KARCH_ia32
     60                /*
     61                 * Restrict the e820 table entries to 32-bits.
     62                 */
     63                if (base64 >= 0x100000000ULL)
     64                        continue;
     65                if (base64 + size64 > 0x100000000ULL)
     66                        size64 -= base64 + size64 - 0x100000000ULL;
     67#endif
     68
     69                uintptr_t base = (uintptr_t) base64;
     70                size_t size = (size_t) size64;
    5871               
    5972                if (!frame_adjust_zone_bounds(low, &base, &size))
Note: See TracChangeset for help on using the changeset viewer.