mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 05:41:55 +00:00
8c31902cff
When decompressing kernel image during x86 bootup, malloc memory for ELF program headers may run out of heap space, which leads to system halt. This patch doubles BOOT_HEAP_SIZE to 64KB. Tested with 32-bit kernel which failed to boot without this patch. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Acked-by: H. Peter Anvin <hpa@zytor.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Cc: <stable@vger.kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org>
41 lines
998 B
C
41 lines
998 B
C
#ifndef _ASM_X86_BOOT_H
|
|
#define _ASM_X86_BOOT_H
|
|
|
|
|
|
#include <asm/pgtable_types.h>
|
|
#include <uapi/asm/boot.h>
|
|
|
|
/* Physical address where kernel should be loaded. */
|
|
#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
|
|
+ (CONFIG_PHYSICAL_ALIGN - 1)) \
|
|
& ~(CONFIG_PHYSICAL_ALIGN - 1))
|
|
|
|
/* Minimum kernel alignment, as a power of two */
|
|
#ifdef CONFIG_X86_64
|
|
#define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT
|
|
#else
|
|
#define MIN_KERNEL_ALIGN_LG2 (PAGE_SHIFT + THREAD_SIZE_ORDER)
|
|
#endif
|
|
#define MIN_KERNEL_ALIGN (_AC(1, UL) << MIN_KERNEL_ALIGN_LG2)
|
|
|
|
#if (CONFIG_PHYSICAL_ALIGN & (CONFIG_PHYSICAL_ALIGN-1)) || \
|
|
(CONFIG_PHYSICAL_ALIGN < MIN_KERNEL_ALIGN)
|
|
#error "Invalid value for CONFIG_PHYSICAL_ALIGN"
|
|
#endif
|
|
|
|
#ifdef CONFIG_KERNEL_BZIP2
|
|
#define BOOT_HEAP_SIZE 0x400000
|
|
#else /* !CONFIG_KERNEL_BZIP2 */
|
|
|
|
#define BOOT_HEAP_SIZE 0x10000
|
|
|
|
#endif /* !CONFIG_KERNEL_BZIP2 */
|
|
|
|
#ifdef CONFIG_X86_64
|
|
#define BOOT_STACK_SIZE 0x4000
|
|
#else
|
|
#define BOOT_STACK_SIZE 0x1000
|
|
#endif
|
|
|
|
#endif /* _ASM_X86_BOOT_H */
|