HomeFreeBSD

vm_phys_avail_split(): Tolerate split requests at boundaries

Description

vm_phys_avail_split(): Tolerate split requests at boundaries

Previously, such requests would lead to a panic. The only caller so far
(vm_phys_early_startup()) actually faces the case where some address can
be one of the chunk's boundaries and has to test it by hand. Moreover,
a later commit will introduce vm_phys_early_alloc_ex(), which will also
have to deal with such boundary cases.

Consequently, make this function handle boundaries by not splitting the
chunk and returning EJUSTRETURN instead of 0 to distinguish this case
from the "was split" result.

While here, expand the panic message when the address to split is not in
the passed chunk with available details.

Reviewed by: markj
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D48630

Details

Provenance
olceAuthored on Nov 4 2024, 5:05 PM
Reviewer
markj
Differential Revision
D48630: vm_phys_avail_split(): Tolerate split requests at boundaries
Parents
rG291b7bf071e8: vm_phys_avail_count(): Fix out-of-bounds accesses
Branches
Unknown
Tags
Unknown