[Cc Dan] On Mon 08-07-19 16:05:41, zhong jiang wrote: > 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. What is the code that you are running and what is the code version. > It is because MAP_SHARED_VALIDATE is introduced and equal to > MAP_SHARED | MAP_PRIVATE. This was a deliberate decision IIRC. Have a look at 1c9725974074 ("mm: introduce MAP_SHARED_VALIDATE, a mechanism to safely define new mmap flags"). > 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 -- Michal Hocko SUSE Labs