Hi Ben, Sorry for the delay in the review. On 2026-02-23T11:02:19-0500, Ben Kallus wrote: > The man page states that the MAP_GROWSDOWN flag causes the kernel to return an > address one page lower than the mapping created. This is not true; the kernel > returns the base address of the mapping created, just as it does when > MAP_GROWSDOWN is not passed. This can be confirmed by inspecting > /proc/self/maps after making a gd mapping, and comparing it to the returned > value from mmap. Okay, the patch looks good to me. However, would you mind showing a minimal C program that demonstrates the behavior? Also, that text was added in the commit 176b1a76 (2016-11-21; "mmap.2: Add (much) more detail on MAP_GROWSDOWN") If that commit was wrong (and thus the kernel has never behaved like that), we should have the following tag in the commit message: Fixes: 176b1a76 (2016-11-21; "mmap.2: Add (much) more detail on MAP_GROWSDOWN") And if it was correct but the kernel has changed behavior, it would be interesting to document when that happened (if we know). Have a lovely day! Alex > --- > man/man2/mmap.2 | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/man/man2/mmap.2 b/man/man2/mmap.2 > index 09e7933d3..20b94c243 100644 > --- a/man/man2/mmap.2 > +++ b/man/man2/mmap.2 > @@ -276,8 +276,6 @@ should check the returned address against the requested address. > This flag is used for stacks. > It indicates to the kernel virtual memory system that the mapping > should extend downward in memory. > -The return address is one page lower than the memory area that is > -actually created in the process's virtual address space. > Touching an address in the "guard" page below the mapping will cause > the mapping to grow by a page. > This growth can be repeated until the mapping grows to within a > -- > 2.53.0 > --