diff options
Diffstat (limited to 'main/grub/0014-xen-Init-memory-regions-for-PVH.patch')
-rw-r--r-- | main/grub/0014-xen-Init-memory-regions-for-PVH.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/main/grub/0014-xen-Init-memory-regions-for-PVH.patch b/main/grub/0014-xen-Init-memory-regions-for-PVH.patch deleted file mode 100644 index 3476868ea2..0000000000 --- a/main/grub/0014-xen-Init-memory-regions-for-PVH.patch +++ /dev/null @@ -1,79 +0,0 @@ -From c411fd781843b50bfb00b83dd039cdf8eb93d2f6 Mon Sep 17 00:00:00 2001 -From: Juergen Gross <jgross@suse.com> -Date: Fri, 7 Dec 2018 13:11:42 +0100 -Subject: [PATCH 14/20] xen: Init memory regions for PVH - -Add all usable memory regions to grub memory management and add the -needed mmap iterate code, which will be used by grub core (e.g. -grub-core/lib/relocator.c or grub-core/mmap/mmap.c). - -As we are running in 32-bit mode don't add memory above 4GB. - -Signed-off-by: Juergen Gross <jgross@suse.com> -Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> -Tested-by: Hans van Kranenburg <hans@knorrie.org> -(cherry picked from commit 1d2473a024a9e1f46a7caa75d5c8186ed2cdb6e1) ---- - grub-core/kern/i386/xen/pvh.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c -index 472085ed1..91fbca859 100644 ---- a/grub-core/kern/i386/xen/pvh.c -+++ b/grub-core/kern/i386/xen/pvh.c -@@ -241,6 +241,30 @@ grub_xen_set_mmap (void) - (grub_uint32_t) (&memmap), 0, 0, 0, 0); - } - -+static void -+grub_xen_mm_init_regions (void) -+{ -+ grub_uint64_t modend, from, to; -+ unsigned int i; -+ -+ modend = grub_modules_get_end (); -+ -+ for (i = 0; i < nr_map_entries; i++) -+ { -+ if (map[i].type != GRUB_MEMORY_AVAILABLE) -+ continue; -+ from = map[i].addr; -+ to = from + map[i].len; -+ if (from < modend) -+ from = modend; -+ if (from >= to || from >= (1ULL << 32)) -+ continue; -+ if (to > (1ULL << 32)) -+ to = 1ULL << 32; -+ grub_mm_init_region ((void *) (grub_addr_t) from, to - from); -+ } -+} -+ - static grub_uint64_t - grub_xen_find_page (grub_uint64_t start) - { -@@ -325,10 +349,21 @@ grub_xen_setup_pvh (void) - (void *) par); - grub_xen_set_mmap (); - -+ grub_xen_mm_init_regions (); -+ - grub_rsdp_addr = pvh_start_info->rsdp_paddr; - } - - grub_err_t - grub_machine_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - { -+ unsigned int i; -+ -+ for (i = 0; i < nr_map_entries; i++) -+ { -+ if (map[i].len && hook (map[i].addr, map[i].len, map[i].type, hook_data)) -+ break; -+ } -+ -+ return GRUB_ERR_NONE; - } --- -2.21.0 - |