linux/arch/arm
Linus Walleij 2c932d5c7a ARM: 9431/1: mm: Pair atomic_set_release() with _read_acquire()
commit 93ee385254 upstream.

The code for syncing vmalloc memory PGD pointers is using
atomic_read() in pair with atomic_set_release() but the
proper pairing is atomic_read_acquire() paired with
atomic_set_release().

This is done to clearly instruct the compiler to not
reorder the memcpy() or similar calls inside the section
so that we do not observe changes to init_mm. memcpy()
calls should be identified by the compiler as having
unpredictable side effects, but let's try to be on the
safe side.

Cc: stable@vger.kernel.org
Fixes: d31e23aff0 ("ARM: mm: make vmalloc_seq handling SMP safe")
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-12-09 10:33:06 +01:00
..
boot ARM: dts: omap36xx: declare 1GHz OPP as turbo again 2024-12-09 10:32:46 +01:00
common ARM: 9318/1: locomo: move kernel-doc to prevent warnings 2023-08-14 12:17:00 +01:00
configs ARM: configs: sunxi: Enable DRM_DW_HDMI 2024-06-12 11:11:32 +02:00
crypto crypto: simd - Do not call crypto_alloc_tfm during registration 2024-10-10 11:57:26 +02:00
include mm: Introduce pudp/p4dp/pgdp_get() functions 2024-09-12 11:11:40 +02:00
kernel ARM: 9430/1: entry: Do a dummy read from VMAP shadow 2024-12-09 10:33:06 +01:00
lib ARM: 9321/1: memset: cast the constant byte to unsigned char 2023-11-20 11:59:20 +01:00
mach-actions treewide: Trace IPIs sent via smp_send_reschedule() 2023-03-24 11:01:28 +01:00
mach-airoha ARM: Add basic support for Airoha EN7523 SoC 2022-03-01 09:02:01 +01:00
mach-alpine ARM: alpine: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-artpec treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mach-asm9260 ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-aspeed ARM: aspeed: Kconfig: Fix indentation 2022-09-28 22:33:55 +02:00
mach-at91 ARM: at91: Explicitly include correct DT includes 2023-07-29 16:56:04 +03:00
mach-axxia ARM: Fix refcount leak in axxia_boot_secondary 2022-06-14 12:19:13 +02:00
mach-bcm ARM: bcm: Drop unused includes 2023-07-21 10:01:47 -07:00
mach-berlin ARM: berlin: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-clps711x ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-davinci ARM: davinci: Convert comma to semicolon 2024-07-18 13:21:16 +02:00
mach-digicolor treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mach-dove ARM: dove: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-ep93xx ep93xx: clock: Fix off by one in ep93xx_div_recalc_rate() 2024-10-04 16:29:40 +02:00
mach-exynos ARM: SoC changes for 6.5 2023-06-29 15:28:33 -07:00
mach-footbridge ARM: unused boardfile removal for 6.3 2023-02-20 15:28:57 -08:00
mach-gemini arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
mach-highbank ARM: highbank: add missing include 2023-05-26 13:31:37 +02:00
mach-hisi ARM: hisi: Drop unused includes 2023-07-19 06:29:04 +00:00
mach-hpe ARM: hpe: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-imx ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init 2023-12-13 18:45:18 +01:00
mach-ixp4xx ARM: ixp4xx: Remove unused debug iomap 2022-11-23 09:29:20 +01:00
mach-keystone ARM: keystone: Merge PM function into main support file 2023-08-01 23:57:28 -05:00
mach-lpc18xx ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-lpc32xx ARM: lpc32xx: add missing include 2023-05-26 13:33:05 +02:00
mach-mediatek arm: mediatek: select arch timer for mt7629 2022-04-22 17:12:05 +02:00
mach-meson ARM: meson: Drop unused includes 2023-07-31 11:58:18 +02:00
mach-milbeaut treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mach-mmp ARM: mmp: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-moxart ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-mstar ARM: mstar: remove unused config MACH_MERCURY 2023-03-24 18:53:25 +01:00
mach-mv78xx0 pci-v6.4-changes 2023-04-27 10:45:30 -07:00
mach-mvebu ARM: mvebu: Explicitly include correct DT includes 2023-08-12 10:31:00 +02:00
mach-mxs ARM: 9298/1: Drop custom mdesc->handle_irq() 2023-06-19 09:35:48 +01:00
mach-nomadik ARM: nomadik: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-npcm ARM: npcm: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-nspire ARM: nspire: Remove unused header file mmio.h 2023-08-12 11:49:32 +02:00
mach-omap1 ARM: OMAP1: ams-delta: Fix MODEM initialization failure 2023-10-13 10:59:48 +03:00
mach-omap2 ASoC: ti: Convert Pandora ASoC to GPIO descriptors 2024-04-27 17:11:35 +02:00
mach-orion5x ARM: orion5x: fix d2net gpio initialization 2023-05-26 13:33:05 +02:00
mach-pxa ARM: spitz: fix GPIO assignment for backlight 2024-08-03 08:53:34 +02:00
mach-qcom firmware: qcom_scm: Move qcom_scm.h to include/linux/firmware/qcom/ 2023-02-08 19:15:16 -08:00
mach-rda ARM: 9285/1: remove meaningless arch/arm/mach-rda/Makefile 2023-01-12 14:30:16 +00:00
mach-realtek ARM: Prepare Realtek RTD1195 2020-04-12 23:13:38 +02:00
mach-rockchip ARM: rockchip: Drop unused includes 2023-08-12 10:31:00 +02:00
mach-rpc lazy tlb: introduce lazy tlb mm refcount helper functions 2023-03-28 16:20:08 -07:00
mach-s3c ARM: s3c: Switch i2c drivers back to use .probe() 2023-05-30 09:40:37 +02:00
mach-s5pv210 ARM: s5pv210: Explicitly include correct DT includes 2023-08-14 18:15:48 +02:00
mach-sa1100 ARM: locomo: fix locomolcd_power declaration 2023-09-28 09:15:51 +02:00
mach-shmobile ARM: shmobile: rcar-gen2: Drop unused OF includes 2023-07-25 11:11:42 +02:00
mach-socfpga ARM: socfpga: Explicitly include correct DT includes 2023-07-20 14:38:38 -05:00
mach-spear ARM: spear: Explicitly include correct DT includes 2023-08-12 10:31:01 +02:00
mach-sti ARM: sti: Drop unused includes 2023-08-12 10:30:59 +02:00
mach-stm32 ARM: stm32: add support for STM32MP151 2023-03-28 16:39:36 +02:00
mach-sunplus ARM: sunplus: fix serial console kconfig and build problems 2022-09-23 14:20:00 +02:00
mach-sunxi ARM: sun9i: smp: fix return code check of of_property_match_string 2024-01-20 11:51:47 +01:00
mach-tegra power: remove pda_power supply driver 2023-02-01 17:23:38 +01:00
mach-uniphier ARM: uniphier: select RESET_CONTROLLER 2018-07-31 19:04:41 -07:00
mach-ux500 ARM: ux500: Move power-domain driver to the genpd dir 2023-07-14 10:41:59 +02:00
mach-versatile ARM: versatile: fix OF node leak in CPUs prepare 2024-10-04 16:29:03 +02:00
mach-vt8500 ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-zynq ARM: zynq: Explicitly include correct DT includes 2023-07-20 17:06:50 +02:00
mm ARM: 9431/1: mm: Pair atomic_set_release() with _read_acquire() 2024-12-09 10:33:06 +01:00
net Revert "bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()" 2024-07-09 11:44:29 +02:00
nwfpe ARM: entry: Make asm coproc dispatch code NWFPE only 2023-05-17 15:08:22 +02:00
plat-orion ARM: orion/gpio: Use the right include 2023-03-06 12:33:00 +02:00
probes ARM: 9303/1: kprobes: avoid missing-declaration warnings 2023-06-19 09:35:51 +01:00
tools arch: Register fchmodat2, usually as syscall 452 2023-07-27 12:25:35 +02:00
vdso kbuild: unify vdso_install rules 2024-06-12 11:12:32 +02:00
vfp ARM: 9410/1: vfp: Use asm volatile in fmrx/fmxr macros 2024-10-04 16:28:51 +02:00
xen arm/xen: fix xen_vcpu_info allocation alignment 2023-12-03 07:33:05 +01:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig ARM: 9352/1: iwmmxt: Remove support for PJ4/PJ4B cores 2024-04-03 15:28:50 +02:00
Kconfig-nommu ARM: 8832/1: NOMMU: Limit visibility for CONFIG_FLASH_{MEM_BASE,SIZE} 2019-02-01 21:44:46 +00:00
Kconfig.assembler ARM: 8991/1: use VFP assembler mnemonics if available 2020-07-21 16:33:39 +01:00
Kconfig.debug ARM udpates for 6.3-rc1 2023-02-21 15:21:29 -08:00
Makefile kbuild: unify vdso_install rules 2024-06-12 11:12:32 +02:00