Commit 374ed9d1 authored by Will Deacon's avatar Will Deacon Committed by Catalin Marinas

arm64: documentation: tighten up tagged pointer documentation

Commit d50240a5 ("arm64: mm: permit use of tagged pointers at EL0")
added support for tagged pointers in userspace, but the corresponding
update to Documentation/ contained some imprecise statements.

This patch fixes up some minor ambiguities in the text, hopefully making
it more clear about exactly what the kernel expects from user virtual
addresses.
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 59f67e16
...@@ -18,17 +18,17 @@ this byte for application use, with the following caveats: ...@@ -18,17 +18,17 @@ this byte for application use, with the following caveats:
parameters containing user virtual addresses *must* have parameters containing user virtual addresses *must* have
their top byte cleared before trapping to the kernel. their top byte cleared before trapping to the kernel.
(2) Tags are not guaranteed to be preserved when delivering (2) Non-zero tags are not preserved when delivering signals.
signals. This means that signal handlers in applications This means that signal handlers in applications making use
making use of tags cannot rely on the tag information for of tags cannot rely on the tag information for user virtual
user virtual addresses being maintained for fields inside addresses being maintained for fields inside siginfo_t.
siginfo_t. One exception to this rule is for signals raised One exception to this rule is for signals raised in response
in response to debug exceptions, where the tag information to watchpoint debug exceptions, where the tag information
will be preserved. will be preserved.
(3) Special care should be taken when using tagged pointers, (3) Special care should be taken when using tagged pointers,
since it is likely that C compilers will not hazard two since it is likely that C compilers will not hazard two
addresses differing only in the upper bits. virtual addresses differing only in the upper byte.
The architecture prevents the use of a tagged PC, so the upper byte will The architecture prevents the use of a tagged PC, so the upper byte will
be set to a sign-extension of bit 55 on exception return. be set to a sign-extension of bit 55 on exception return.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment