aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/arm64
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2013-09-17 06:46:23 -0400
committerCatalin Marinas <catalin.marinas@arm.com>2013-09-20 04:56:06 -0400
commit374ed9d18e658704235b84a60589888ca52ab0fe (patch)
treefe87e717b8ccf75eb57fd693786f6fab21413cf9 /Documentation/arm64
parent59f67e16e6b79697241c3fd030e3da300377893e (diff)
arm64: documentation: tighten up tagged pointer documentation
Commit d50240a5f6ce ("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: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'Documentation/arm64')
-rw-r--r--Documentation/arm64/tagged-pointers.txt14
1 files changed, 7 insertions, 7 deletions
diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt
index 264e9841563a..d9995f1f51b3 100644
--- a/Documentation/arm64/tagged-pointers.txt
+++ b/Documentation/arm64/tagged-pointers.txt
@@ -18,17 +18,17 @@ this byte for application use, with the following caveats:
18 parameters containing user virtual addresses *must* have 18 parameters containing user virtual addresses *must* have
19 their top byte cleared before trapping to the kernel. 19 their top byte cleared before trapping to the kernel.
20 20
21 (2) Tags are not guaranteed to be preserved when delivering 21 (2) Non-zero tags are not preserved when delivering signals.
22 signals. This means that signal handlers in applications 22 This means that signal handlers in applications making use
23 making use of tags cannot rely on the tag information for 23 of tags cannot rely on the tag information for user virtual
24 user virtual addresses being maintained for fields inside 24 addresses being maintained for fields inside siginfo_t.
25 siginfo_t. One exception to this rule is for signals raised 25 One exception to this rule is for signals raised in response
26 in response to debug exceptions, where the tag information 26 to watchpoint debug exceptions, where the tag information
27 will be preserved. 27 will be preserved.
28 28
29 (3) Special care should be taken when using tagged pointers, 29 (3) Special care should be taken when using tagged pointers,
30 since it is likely that C compilers will not hazard two 30 since it is likely that C compilers will not hazard two
31 addresses differing only in the upper bits. 31 virtual addresses differing only in the upper byte.
32 32
33The architecture prevents the use of a tagged PC, so the upper byte will 33The architecture prevents the use of a tagged PC, so the upper byte will
34be set to a sign-extension of bit 55 on exception return. 34be set to a sign-extension of bit 55 on exception return.