mmap.2 man page update for MAP_DONTUNMAP flag of mmap. Signed-off-by: Piotr Kwapulinski <kwapulinski.piotr@xxxxxxxxx> --- It should be considered to be merged only in case the patch "[PATCH 0/3] mm/mmap.c: don't unmap the overlapping VMA(s)" is merged. --- man2/mmap.2 | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/man2/mmap.2 b/man2/mmap.2 index 0f2f277..0fc5879 100644 --- a/man2/mmap.2 +++ b/man2/mmap.2 @@ -37,7 +37,7 @@ .\" 2007-07-10, mtk, Added an example program. .\" 2008-11-18, mtk, document MAP_STACK .\" -.TH MMAP 2 2016-03-15 "Linux" "Linux Programmer's Manual" +.TH MMAP 2 2016-04-02 "Linux" "Linux Programmer's Manual" .SH NAME mmap, munmap \- map or unmap files or devices into memory .SH SYNOPSIS @@ -213,7 +213,9 @@ If the memory region specified by .I addr and .I len -overlaps pages of any existing mapping(s), then the overlapped +overlaps pages of any existing mapping(s) and +.B MAP_DONTUNMAP +is not set, then the overlapped part of the existing mapping(s) will be discarded. If the specified address cannot be used, .BR mmap () @@ -221,6 +223,23 @@ will fail. Because requiring a fixed address for a mapping is less portable, the use of this option is discouraged. .TP +.BR MAP_DONTUNMAP " (since Linux 4.6)" +If this flag and +.B MAP_FIXED +are set and the memory region specified by +.I addr +and +.I length +overlaps pages of any existing mapping(s), then the +.BR mmap () +will fail with +.BR ENOMEM . +No existing mapping(s) will be +discarded. + +Note: currently, this flag is not implemented in the glibc wrapper. +Use the numerical hex value 40, if you want to use it. +.TP .B MAP_GROWSDOWN Used for stacks. Indicates to the kernel virtual memory system that the mapping @@ -477,6 +496,15 @@ No memory is available. .TP .B ENOMEM The process's maximum number of mappings would have been exceeded. +Or, both the +.B MAP_FIXED +and +.B MAP_DONTUNMAP +flags are set and the memory region specified by +.I addr +and +.I length +overlaps pages of any existing mapping(s). This error can also occur for .BR munmap (2), when unmapping a region in the middle of an existing mapping, -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html