On Mon, Sep 11, 2017 at 2:47 AM, Jan Kara <jack@xxxxxxx> wrote: > On Fri 08-09-17 12:35:13, Dan Williams wrote: >> The mmap(2) syscall suffers from the ABI anti-pattern of not validating >> unknown flags. However, proposals like MAP_SYNC and MAP_DIRECT need a >> mechanism to define new behavior that is known to fail on older kernels >> without the support. Define a new MAP_SHARED_VALIDATE flag pattern that >> is guaranteed to fail on all legacy mmap implementations. >> >> With this in place new flags can be defined as: >> >> #define MAP_new (MAP_SHARED_VALIDATE | val) > > Is this changelog stale? Given MAP_SHARED_VALIDATE will be new mapping > type, I'd expect we define new flags just as any other mapping flags... > I see no reason why MAP_SHARED_VALIDATE should be or'ed to that. True, it will just by a new MAP_TYPE plus new flags. I will fix this up comment. [..] >> diff --git a/arch/alpha/include/uapi/asm/mman.h b/arch/alpha/include/uapi/asm/mman.h >> index 3b26cc62dadb..c32276c4196a 100644 >> --- a/arch/alpha/include/uapi/asm/mman.h >> +++ b/arch/alpha/include/uapi/asm/mman.h >> @@ -14,6 +14,7 @@ >> #define MAP_TYPE 0x0f /* Mask for type of mapping (OSF/1 is _wrong_) */ >> #define MAP_FIXED 0x100 /* Interpret addr exactly */ >> #define MAP_ANONYMOUS 0x10 /* don't use a file */ >> +#define MAP_SHARED_VALIDATE (MAP_SHARED|MAP_PRIVATE) /* validate extension flags */ > > And I'd explicitely define MAP_SHARED_VALIDATE as the first unused value > among mapping types (which is in fact enum embedded inside mapping flags). > I.e. 0x03 on alpha, x86, and probably all other archs - it has nothing to > do with MAP_SHARED|MAP_PRIVATE - it is just another type of the mapping > which happens to have most of the MAP_SHARED semantics... Ok, I'll make it 0x3 everywhere. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>