diff options
author | Matt Fleming <matt.fleming@intel.com> | 2013-07-25 20:14:09 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2013-07-25 22:39:57 +0100 |
commit | 77cadda8fa63289dbd3d2bbc6eaff7c7e42688c4 (patch) | |
tree | f376c57888d0e89fa1ef6f3934844c4b63c28bed /com32/include/syslinux/movebits.h | |
parent | c8524364ff29e3f0bef0b21d66e571ba76e8d9d4 (diff) | |
download | syslinux-77cadda8fa63289dbd3d2bbc6eaff7c7e42688c4.tar.gz |
load_linux: dynamically calculate the cmdline regionsyslinux-6.02-pre12
Users are hitting issues where the offset calculated by,
(0x9ff0 - cmdline_size) & ~15;
is not useable memory, e.g. it is SMT_RESERVED. Instead we should be
trying to find the highest lowmem address.
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/include/syslinux/movebits.h')
-rw-r--r-- | com32/include/syslinux/movebits.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/com32/include/syslinux/movebits.h b/com32/include/syslinux/movebits.h index d12fb584..f35418f9 100644 --- a/com32/include/syslinux/movebits.h +++ b/com32/include/syslinux/movebits.h @@ -83,6 +83,10 @@ enum syslinux_memmap_types syslinux_memmap_type(struct syslinux_memmap *list, int syslinux_memmap_largest(struct syslinux_memmap *list, enum syslinux_memmap_types type, addr_t * start, addr_t * len); +int syslinux_memmap_highest(struct syslinux_memmap *list, + enum syslinux_memmap_types types, + addr_t *start, addr_t len, + addr_t ceiling, addr_t align); void syslinux_free_memmap(struct syslinux_memmap *list); struct syslinux_memmap *syslinux_dup_memmap(struct syslinux_memmap *list); int syslinux_memmap_find_type(struct syslinux_memmap *list, |