On 07/08/2019 16:53, Catalin Marinas wrote: > From: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> > > On arm64 the TCR_EL1.TBI0 bit has been always enabled hence > the userspace (EL0) is allowed to set a non-zero value in the > top byte but the resulting pointers are not allowed at the > user-kernel syscall ABI boundary. > > With the relaxed ABI proposed through this document, it is now possible > to pass tagged pointers to the syscalls, when these pointers are in > memory ranges obtained by an anonymous (MAP_ANONYMOUS) mmap(). description needs to be updated not to restrict tags to anon mmap. > +3. AArch64 Tagged Address ABI Exceptions > +----------------------------------------- > + > +The behaviour described in section 2, with particular reference to the > +acceptance by the syscalls of any valid tagged pointer, is not applicable > +to the following cases: > + > +- mmap() addr parameter. > + > +- mremap() new_address parameter. > + > +- prctl(PR_SET_MM, ``*``, ...) other than arg2 PR_SET_MM_MAP and > + PR_SET_MM_MAP_SIZE. > + > +- prctl(PR_SET_MM, PR_SET_MM_MAP{,_SIZE}, ...) struct prctl_mm_map fields. > + > +Any attempt to use non-zero tagged pointers will lead to undefined > +behaviour. i think that brk may be affected too by whatever that's causing problems in mmap. otherwise the text looks good to me.