Loading Documentation/arm64/tagged-address-abi.rst +23 −7 Original line number Diff line number Diff line Loading @@ -45,8 +45,9 @@ how the user addresses are used by the kernel: 1. User addresses not accessed by the kernel but used for address space management (e.g. ``mprotect()``, ``madvise()``). The use of valid tagged pointers in this context is allowed with the exception of ``brk()``, ``mmap()`` and the ``new_address`` argument to tagged pointers in this context is allowed with these exceptions: - ``brk()``, ``mmap()`` and the ``new_address`` argument to ``mremap()`` as these have the potential to alias with existing user addresses. Loading @@ -54,6 +55,15 @@ how the user addresses are used by the kernel: incorrectly accept valid tagged pointers for the ``brk()``, ``mmap()`` and ``mremap()`` system calls. - The ``range.start``, ``start`` and ``dst`` arguments to the ``UFFDIO_*`` ``ioctl()``s used on a file descriptor obtained from ``userfaultfd()``, as fault addresses subsequently obtained by reading the file descriptor will be untagged, which may otherwise confuse tag-unaware programs. NOTE: This behaviour changed in v5.14 and so some earlier kernels may incorrectly accept valid tagged pointers for this system call. 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI relaxation is disabled by default and the application thread needs to explicitly enable it via ``prctl()`` as follows: Loading Loading @@ -113,6 +123,12 @@ ABI relaxation: - ``shmat()`` and ``shmdt()``. - ``brk()`` (since kernel v5.6). - ``mmap()`` (since kernel v5.6). - ``mremap()``, the ``new_address`` argument (since kernel v5.6). Any attempt to use non-zero tagged pointers may result in an error code being returned, a (fatal) signal being raised, or other modes of failure. Loading Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 272 SUBLEVEL = 275 EXTRAVERSION = NAME = "People's Front" Loading arch/arm/boot/dts/rk3288.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -1172,6 +1172,7 @@ clock-names = "dp", "pclk"; phys = <&edp_phy>; phy-names = "dp"; power-domains = <&power RK3288_PD_VIO>; resets = <&cru SRST_EDP>; reset-names = "dp"; rockchip,grf = <&grf>; Loading arch/arm/crypto/curve25519-core.S +1 −1 Original line number Diff line number Diff line Loading @@ -10,8 +10,8 @@ #include <linux/linkage.h> .text .fpu neon .arch armv7-a .fpu neon .align 4 ENTRY(curve25519_neon) Loading arch/arm64/boot/dts/amlogic/meson-axg.dtsi +2 −2 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ sd_emmc_b: sd@5000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x5000 0x0 0x800>; interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>, Loading @@ -179,7 +179,7 @@ sd_emmc_c: mmc@7000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x7000 0x0 0x800>; interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>, Loading Loading
Documentation/arm64/tagged-address-abi.rst +23 −7 Original line number Diff line number Diff line Loading @@ -45,8 +45,9 @@ how the user addresses are used by the kernel: 1. User addresses not accessed by the kernel but used for address space management (e.g. ``mprotect()``, ``madvise()``). The use of valid tagged pointers in this context is allowed with the exception of ``brk()``, ``mmap()`` and the ``new_address`` argument to tagged pointers in this context is allowed with these exceptions: - ``brk()``, ``mmap()`` and the ``new_address`` argument to ``mremap()`` as these have the potential to alias with existing user addresses. Loading @@ -54,6 +55,15 @@ how the user addresses are used by the kernel: incorrectly accept valid tagged pointers for the ``brk()``, ``mmap()`` and ``mremap()`` system calls. - The ``range.start``, ``start`` and ``dst`` arguments to the ``UFFDIO_*`` ``ioctl()``s used on a file descriptor obtained from ``userfaultfd()``, as fault addresses subsequently obtained by reading the file descriptor will be untagged, which may otherwise confuse tag-unaware programs. NOTE: This behaviour changed in v5.14 and so some earlier kernels may incorrectly accept valid tagged pointers for this system call. 2. User addresses accessed by the kernel (e.g. ``write()``). This ABI relaxation is disabled by default and the application thread needs to explicitly enable it via ``prctl()`` as follows: Loading Loading @@ -113,6 +123,12 @@ ABI relaxation: - ``shmat()`` and ``shmdt()``. - ``brk()`` (since kernel v5.6). - ``mmap()`` (since kernel v5.6). - ``mremap()``, the ``new_address`` argument (since kernel v5.6). Any attempt to use non-zero tagged pointers may result in an error code being returned, a (fatal) signal being raised, or other modes of failure. Loading
Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 SUBLEVEL = 272 SUBLEVEL = 275 EXTRAVERSION = NAME = "People's Front" Loading
arch/arm/boot/dts/rk3288.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -1172,6 +1172,7 @@ clock-names = "dp", "pclk"; phys = <&edp_phy>; phy-names = "dp"; power-domains = <&power RK3288_PD_VIO>; resets = <&cru SRST_EDP>; reset-names = "dp"; rockchip,grf = <&grf>; Loading
arch/arm/crypto/curve25519-core.S +1 −1 Original line number Diff line number Diff line Loading @@ -10,8 +10,8 @@ #include <linux/linkage.h> .text .fpu neon .arch armv7-a .fpu neon .align 4 ENTRY(curve25519_neon) Loading
arch/arm64/boot/dts/amlogic/meson-axg.dtsi +2 −2 Original line number Diff line number Diff line Loading @@ -167,7 +167,7 @@ sd_emmc_b: sd@5000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x5000 0x0 0x800>; interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_CLK0>, Loading @@ -179,7 +179,7 @@ sd_emmc_c: mmc@7000 { compatible = "amlogic,meson-axg-mmc"; reg = <0x0 0x7000 0x0 0x800>; interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; clocks = <&clkc CLKID_SD_EMMC_C>, <&clkc CLKID_SD_EMMC_C_CLK0>, Loading