forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/Documentation/arm64/tagged-address-abi.rst
....@@ -45,14 +45,24 @@
4545
4646 1. User addresses not accessed by the kernel but used for address space
4747 management (e.g. ``mprotect()``, ``madvise()``). The use of valid
48
- tagged pointers in this context is allowed with the exception of
49
- ``brk()``, ``mmap()`` and the ``new_address`` argument to
50
- ``mremap()`` as these have the potential to alias with existing
51
- user addresses.
48
+ tagged pointers in this context is allowed with these exceptions:
5249
53
- NOTE: This behaviour changed in v5.6 and so some earlier kernels may
54
- incorrectly accept valid tagged pointers for the ``brk()``,
55
- ``mmap()`` and ``mremap()`` system calls.
50
+ - ``brk()``, ``mmap()`` and the ``new_address`` argument to
51
+ ``mremap()`` as these have the potential to alias with existing
52
+ user addresses.
53
+
54
+ NOTE: This behaviour changed in v5.6 and so some earlier kernels may
55
+ incorrectly accept valid tagged pointers for the ``brk()``,
56
+ ``mmap()`` and ``mremap()`` system calls.
57
+
58
+ - The ``range.start``, ``start`` and ``dst`` arguments to the
59
+ ``UFFDIO_*`` ``ioctl()``s used on a file descriptor obtained from
60
+ ``userfaultfd()``, as fault addresses subsequently obtained by reading
61
+ the file descriptor will be untagged, which may otherwise confuse
62
+ tag-unaware programs.
63
+
64
+ NOTE: This behaviour changed in v5.14 and so some earlier kernels may
65
+ incorrectly accept valid tagged pointers for this system call.
5666
5767 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI
5868 relaxation is disabled by default and the application thread needs to