HomeFreeBSD

riscv: Fix thread0.td_kstack_pages init

Description

riscv: Fix thread0.td_kstack_pages init

Commit 0ef3ca7ae37c70e9dc83475dc2e68e98e1c2a418 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/D38049

Details

Provenance
brooksAuthored on Jan 17 2023, 4:36 PM
Reviewer
imp
Differential Revision
D38049: riscv: Fix thread0.td_kstack_pages init
Parents
rGe1b610f76caa: arm64: Fix thread0.td_kstack_pages init
Branches
Unknown
Tags
Unknown