mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-17 06:52:43 +00:00
x86-64: align __PHYSICAL_START, remove __KERNEL_ALIGN
Handle the misconfiguration where CONFIG_PHYSICAL_START is incompatible with CONFIG_PHYSICAL_ALIGN. This is a configuration error, but one which arises easily since Kconfig doesn't have the smarts to express the true relationship between these two variables. Hence, align __PHYSICAL_START the same way we align LOAD_PHYSICAL_ADDR in <asm/boot.h>. For non-relocatable kernels, this would cause the boot to fail. [ Impact: fix boot failures for non-relocatable kernels ] Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
7ed42a28b2
commit
c4f68236e4
@ -32,17 +32,9 @@
|
||||
*/
|
||||
#define __PAGE_OFFSET _AC(0xffff880000000000, UL)
|
||||
|
||||
#define __PHYSICAL_START CONFIG_PHYSICAL_START
|
||||
#define __KERNEL_ALIGN 0x200000
|
||||
|
||||
/*
|
||||
* Make sure kernel is aligned to 2MB address. Catching it at compile
|
||||
* time is better. Change your config file and compile the kernel
|
||||
* for a 2MB aligned address (CONFIG_PHYSICAL_START)
|
||||
*/
|
||||
#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0
|
||||
#error "CONFIG_PHYSICAL_START must be a multiple of 2MB"
|
||||
#endif
|
||||
#define __PHYSICAL_START ((CONFIG_PHYSICAL_START + \
|
||||
(CONFIG_PHYSICAL_ALIGN - 1)) & \
|
||||
~(CONFIG_PHYSICAL_ALIGN - 1))
|
||||
|
||||
#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
|
||||
#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user