66 lines
2.0 KiB
Diff
66 lines
2.0 KiB
Diff
Upstream-Status: Backport [c0ea15936de8378d1da6843d3dbddd8dddba1011]
|
|
Signed-off-by: Jonathan Liu <net147@gmail.com>
|
|
|
|
From f3347f9b09135d71a4effae1614b22dcdf16a7e2 Mon Sep 17 00:00:00 2001
|
|
From: Matt Fleming <matt.fleming@intel.com>
|
|
Date: Wed, 24 Jul 2013 18:33:14 +0100
|
|
Subject: [PATCH 4/4] pxe: use bios_fbm() and real_base_mem to calculate free
|
|
space
|
|
|
|
We don't need to individually add the PXE regions, we already have two
|
|
symbols that denote the memory region that will be freed when calling
|
|
unload_pxe().
|
|
|
|
This essentially reverts commit 03dda0f1 ("pxe: mark all PXE regions as
|
|
SMT_TERMINAL").
|
|
|
|
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
Conflicts:
|
|
core/fs/pxe/bios.c
|
|
---
|
|
core/fs/pxe/bios.c | 18 +++++++++---------
|
|
1 file changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/core/fs/pxe/bios.c b/core/fs/pxe/bios.c
|
|
index 5f61824..ffdffaf 100644
|
|
--- a/core/fs/pxe/bios.c
|
|
+++ b/core/fs/pxe/bios.c
|
|
@@ -94,24 +94,24 @@ static const struct pxenv_t *memory_scan_for_pxenv_struct(void)
|
|
|
|
static int pxelinux_scan_memory(scan_memory_callback_t callback, void *data)
|
|
{
|
|
+ addr_t start, size;
|
|
int rv = 0;
|
|
|
|
+ if (KeepPXE)
|
|
+ return 0;
|
|
+
|
|
/*
|
|
* If we are planning on calling unload_pxe() and unmapping the PXE
|
|
* region before we transfer control away from PXELINUX we can mark
|
|
* that region as SMT_TERMINAL to indicate that the region will
|
|
* become free at some point in the future.
|
|
*/
|
|
- if (!KeepPXE) {
|
|
- dprintf("Marking PXE code region 0x%x - 0x%x as SMT_TERMINAL\n",
|
|
- pxe_code_start, pxe_code_start + pxe_code_size);
|
|
- rv = callback(data, pxe_code_start, pxe_code_size, SMT_TERMINAL);
|
|
-
|
|
- dprintf("Marking PXE data region 0x%x - 0x%x as SMT_TERMINAL\n",
|
|
- pxe_data_start, pxe_data_start + pxe_data_size);
|
|
- rv = callback(data, pxe_data_start, pxe_data_size, SMT_TERMINAL);
|
|
- }
|
|
+ start = bios_fbm() << 10;
|
|
+ size = (real_base_mem - bios_fbm()) << 10;
|
|
+ dprintf("Marking PXE region 0x%x - 0x%x as SMT_TERMINAL\n",
|
|
+ start, start + size);
|
|
|
|
+ callback(data, start, size, SMT_TERMINAL);
|
|
return rv;
|
|
}
|
|
|
|
--
|
|
1.8.5.3
|
|
|