git: boot - Put loader heap in high memory

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Jul 26 01:07:31 PDT 2015


commit 349c99ee28c800cca8338621e90b603e7d452adc
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Jul 26 01:03:46 2015 -0700

    boot - Put loader heap in high memory
    
    * We ran out of low BIOS memory.  The initrd.img.gz unpacking requires a
      bit more than ~32KB of temporary space and it ran the loader out of
      low-BIOS heap memory.
    
      This can cause the loader to fail to load the image and prevent proper
      crypto or single-user bootstrapping.
    
    * Steal the heap from high-memory, just ender the kernel+modules load area
      limit.  For now, steal 1MB, which gives the loader plenty of space again.
      The kernel will lose 1MB of physical memory, boo-hoo.
    
    * The loader must remove the heap from the SMAP passed to the kernel.
    
    * Move any objects requiring VTOPSEG/VTOPOFF out of malloc and into a
      static or stack declaration.
    
    Reported-by: cgag, multiple

Summary of changes:
 lib/libstand/sbrk.c              | 10 +++++-----
 sys/boot/common/module.c         | 11 ++++++++++-
 sys/boot/common/rel_open.c       | 14 ++++++++------
 sys/boot/pc32/libi386/biosdisk.c |  9 +++++----
 sys/boot/pc32/libi386/biosmem.c  |  4 ++++
 sys/boot/pc32/libi386/biossmap.c | 38 +++++++++++++++++++++++++++++++++++---
 sys/boot/pc32/libi386/libi386.h  |  1 +
 sys/boot/pc32/loader/main.c      | 11 +++++++++++
 8 files changed, 79 insertions(+), 19 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/349c99ee28c800cca8338621e90b603e7d452adc


-- 
DragonFly BSD source repository



More information about the Commits mailing list