HomeFreeBSD

arm64: Fix thread0.td_kstack_pages init

Description

arm64: Fix thread0.td_kstack_pages init

Commit 86a994d6537d7b5e1efb1019e466d86a688fd570 initialized
thread0.td_kstack_pages to KSTACK_PAGES. Due to the lack of an
include of opt_kstack_pages.h it used the fallback value of 4 from
machine/param.h. This meant that increasing KSTACK_PAGES in the kernel
config resulted in a panic in _epoch_enter_preempt as the following
assertion was false during network stack setup:

        MPASS((vm_offset_t)et >= td->td_kstack &&
	    (vm_offset_t)et + sizeof(struct epoch_tracker) <=
	    td->td_kstack + td->td_kstack_pages * PAGE_SIZE);

Switch to initializing with kstack_pages following other architectures.

Reviewed by: imp, markj
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D38048

(cherry picked from commit e1b610f76caa09bbc3910477da878ea5078c6569)

Details

Provenance
brooksAuthored on Jan 17 2023, 4:35 PM
Reviewer
imp
Differential Revision
D38048: arm64: Fix thread0.td_kstack_pages init
Parents
rG3ececb0f35b9: stand: dev can't be NULL in default_prasedev
Branches
Unknown
Tags
Unknown