Re: [PATCH v7 1/2] arm64: Define Documentation/arm64/tagged-address-abi.rst
From: Szabolcs Nagy <hidden>
Date: 2019-08-08 16:30:23
Also in:
linux-arch, linux-arm-kernel
From: Szabolcs Nagy <hidden>
Date: 2019-08-08 16:30:23
Also in:
linux-arch, linux-arm-kernel
On 07/08/2019 16:53, Catalin Marinas wrote:
From: Vincenzo Frascino <vincenzo.frascino@arm.com> 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.