As the mman manual says, mmap should return fails when we assign the flags to MAP_SHARED | MAP_PRIVATE. But In fact, We run the code successfully and unexpected. It is because MAP_SHARED_VALIDATE is introduced and equal to MAP_SHARED | MAP_PRIVATE. Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx> --- include/uapi/linux/mman.h | 2 +- tools/include/uapi/asm-generic/mman-common-tools.h | 2 +- tools/include/uapi/linux/mman.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/uapi/linux/mman.h b/include/uapi/linux/mman.h index fc1a64c..1d3098e 100644 --- a/include/uapi/linux/mman.h +++ b/include/uapi/linux/mman.h @@ -14,7 +14,7 @@ #define MAP_SHARED 0x01 /* Share changes */ #define MAP_PRIVATE 0x02 /* Changes are private */ -#define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */ +#define MAP_SHARED_VALIDATE 0x04 /* share + validate extension flags */ /* * Huge page size encoding when MAP_HUGETLB is specified, and a huge page diff --git a/tools/include/uapi/asm-generic/mman-common-tools.h b/tools/include/uapi/asm-generic/mman-common-tools.h index af7d0d3..4fc44d2 100644 --- a/tools/include/uapi/asm-generic/mman-common-tools.h +++ b/tools/include/uapi/asm-generic/mman-common-tools.h @@ -18,6 +18,6 @@ #ifndef MAP_SHARED #define MAP_SHARED 0x01 /* Share changes */ #define MAP_PRIVATE 0x02 /* Changes are private */ -#define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */ +#define MAP_SHARED_VALIDATE 0x04 /* share + validate extension flags */ #endif #endif // __ASM_GENERIC_MMAN_COMMON_TOOLS_ONLY_H diff --git a/tools/include/uapi/linux/mman.h b/tools/include/uapi/linux/mman.h index fc1a64c..1d3098e 100644 --- a/tools/include/uapi/linux/mman.h +++ b/tools/include/uapi/linux/mman.h @@ -14,7 +14,7 @@ #define MAP_SHARED 0x01 /* Share changes */ #define MAP_PRIVATE 0x02 /* Changes are private */ -#define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */ +#define MAP_SHARED_VALIDATE 0x04 /* share + validate extension flags */ /* * Huge page size encoding when MAP_HUGETLB is specified, and a huge page -- 1.7.12.4