mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-08 10:25:20 +02:00
xen: move checks for e820 conflicts further up
commit c4498ae316
upstream.
Move the checks for e820 memory map conflicts using the
xen_chk_is_e820_usable() helper further up in order to prepare
resolving some of the possible conflicts by doing some e820 map
modifications, which must happen before evaluating the RAM layout.
Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
79fec62d0f
commit
161fd69123
|
@ -855,6 +855,28 @@ char * __init xen_memory_setup(void)
|
||||||
/* Make sure the Xen-supplied memory map is well-ordered. */
|
/* Make sure the Xen-supplied memory map is well-ordered. */
|
||||||
e820__update_table(&xen_e820_table);
|
e820__update_table(&xen_e820_table);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check whether the kernel itself conflicts with the target E820 map.
|
||||||
|
* Failing now is better than running into weird problems later due
|
||||||
|
* to relocating (and even reusing) pages with kernel text or data.
|
||||||
|
*/
|
||||||
|
xen_chk_is_e820_usable(__pa_symbol(_text),
|
||||||
|
__pa_symbol(_end) - __pa_symbol(_text),
|
||||||
|
"kernel");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check for a conflict of the xen_start_info memory with the target
|
||||||
|
* E820 map.
|
||||||
|
*/
|
||||||
|
xen_chk_is_e820_usable(__pa(xen_start_info), sizeof(*xen_start_info),
|
||||||
|
"xen_start_info");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check for a conflict of the hypervisor supplied page tables with
|
||||||
|
* the target E820 map.
|
||||||
|
*/
|
||||||
|
xen_pt_check_e820();
|
||||||
|
|
||||||
max_pages = xen_get_max_pages();
|
max_pages = xen_get_max_pages();
|
||||||
|
|
||||||
/* How many extra pages do we need due to remapping? */
|
/* How many extra pages do we need due to remapping? */
|
||||||
|
@ -927,28 +949,6 @@ char * __init xen_memory_setup(void)
|
||||||
|
|
||||||
e820__update_table(e820_table);
|
e820__update_table(e820_table);
|
||||||
|
|
||||||
/*
|
|
||||||
* Check whether the kernel itself conflicts with the target E820 map.
|
|
||||||
* Failing now is better than running into weird problems later due
|
|
||||||
* to relocating (and even reusing) pages with kernel text or data.
|
|
||||||
*/
|
|
||||||
xen_chk_is_e820_usable(__pa_symbol(_text),
|
|
||||||
__pa_symbol(_end) - __pa_symbol(_text),
|
|
||||||
"kernel");
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check for a conflict of the xen_start_info memory with the target
|
|
||||||
* E820 map.
|
|
||||||
*/
|
|
||||||
xen_chk_is_e820_usable(__pa(xen_start_info), sizeof(*xen_start_info),
|
|
||||||
"xen_start_info");
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check for a conflict of the hypervisor supplied page tables with
|
|
||||||
* the target E820 map.
|
|
||||||
*/
|
|
||||||
xen_pt_check_e820();
|
|
||||||
|
|
||||||
xen_reserve_xen_mfnlist();
|
xen_reserve_xen_mfnlist();
|
||||||
|
|
||||||
/* Check for a conflict of the initrd with the target E820 map. */
|
/* Check for a conflict of the initrd with the target E820 map. */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user