mirror of
https://github.com/opnsense/src.git
synced 2026-06-04 22:32:43 -04:00
amd64: Use a larger boot stack
With sanitizers enabled, it becomes possible to overflow the stack when only a single page is used. Follow arm64's example and use the default kernel stack size instead. This is a bit wasteful, but without a guard page, overflow merely corrupts adjacent .bss entries and is thus difficult to debug. Note, with a GENERIC kernel we already consume over half of the available boot stack space, see the review for an example. Reviewed by: kib Reported by: Jenkins MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D41166
This commit is contained in:
parent
5b353925ff
commit
789df254cc
2 changed files with 3 additions and 2 deletions
|
|
@ -116,6 +116,7 @@ ASSYM(KERNBASE, KERNBASE);
|
|||
ASSYM(KERNLOAD, KERNLOAD);
|
||||
ASSYM(DMAP_MIN_ADDRESS, DMAP_MIN_ADDRESS);
|
||||
ASSYM(DMAP_MAX_ADDRESS, DMAP_MAX_ADDRESS);
|
||||
ASSYM(KSTACK_PAGES, KSTACK_PAGES);
|
||||
|
||||
ASSYM(PCB_R15, offsetof(struct pcb, pcb_r15));
|
||||
ASSYM(PCB_R14, offsetof(struct pcb, pcb_r14));
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
.set dmapbase,DMAP_MIN_ADDRESS
|
||||
.set dmapend,DMAP_MAX_ADDRESS
|
||||
|
||||
#define BOOTSTACK_SIZE 4096
|
||||
#define BOOTSTACK_SIZE (PAGE_SIZE * KSTACK_PAGES)
|
||||
|
||||
.text
|
||||
/**********************************************************************
|
||||
|
|
@ -148,7 +148,7 @@ ENTRY(la57_trampoline_gdt)
|
|||
ENTRY(la57_trampoline_end)
|
||||
|
||||
.bss
|
||||
ALIGN_DATA /* just to be sure */
|
||||
.p2align PAGE_SHIFT
|
||||
.globl bootstack
|
||||
.space BOOTSTACK_SIZE /* space for bootstack - temporary stack */
|
||||
bootstack:
|
||||
|
|
|
|||
Loading…
Reference in a new issue