On 7/28/23 06:34, Richard Henderson wrote:
> On 7/27/23 20:54, Warner Losh wrote:
>> We're hitting an assert when we pass in alignment == 0 since that's not
>> a power of two. so pass in the ideal page size.
>>
>> Signed-off-by: Warner Losh <imp@bsdimp.com>
>> ---
>> bsd-user/mmap.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
>
> r~
>
>>
>> diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c
>> index 74ed00b9fe3..e3ce4ab1fc7 100644
>> --- a/bsd-user/mmap.c
>> +++ b/bsd-user/mmap.c
>> @@ -260,7 +260,7 @@ static abi_ulong mmap_find_vma_aligned(abi_ulong start, abi_ulong size,
>> if (reserved_va) {
>> return mmap_find_vma_reserved(start, size,
>> - (alignment != 0 ? 1 << alignment : 0));
>> + (alignment != 0 ? 1 << alignment : qemu_host_page_size));
Actually, it probably should be MAX(qemu_host_page_size, TARGET_PAGE_SIZE).
Does freebsd currently support any hosts with a page size that is not 4k? It would have
been true in the past, certainly, but perhaps they've all been deprecated and removed.
arm64 supports 64k pages now too... I'll update the patch...
Warner