linux/arch/arm
Linus Walleij 213f22fb42 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-14 19:54:14 +01:00
..
boot ARM: dts: cubieboard4: Fix DCDC5 regulator constraints 2024-12-14 19:53:22 +01:00
common ARM/dma-mapping: remove dmabounce 2022-07-07 18:18:56 +02:00
configs ARM: configs: sunxi: Enable DRM_DW_HDMI 2024-06-12 11:03:06 +02:00
crypto crypto: simd - Do not call crypto_alloc_tfm during registration 2024-10-17 15:21:39 +02:00
include mm: remove kern_addr_valid() completely 2024-11-08 16:26:39 +01:00
kernel ARM: 9430/1: entry: Do a dummy read from VMAP shadow 2024-12-14 19:54:14 +01:00
lib ARM: 9321/1: memset: cast the constant byte to unsigned char 2023-11-20 11:52:06 +01:00
mach-actions ARM: actions: Drop unneeded select of COMMON_CLK 2020-05-15 23:27:37 +02:00
mach-airoha ARM: Add basic support for Airoha EN7523 SoC 2022-03-01 09:02:01 +01:00
mach-alpine ARM: alpine: Drop unneeded select of HAVE_SMP 2020-05-15 23:27:37 +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: pm: fix imbalanced reference counter for ethernet devices 2023-06-14 11:15:29 +02:00
mach-axxia ARM: Fix refcount leak in axxia_boot_secondary 2022-06-14 12:19:13 +02:00
mach-bcm SPDX changes for 6.0-rc1 2022-08-04 12:12:54 -07:00
mach-berlin ARM: berlin: Drop unneeded select of HAVE_SMP 2020-05-15 23:27:37 +02:00
mach-clps711x ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-cns3xxx ARM: cns3xxx: add CONFIG_UNUSED_BOARD_FILES dependency 2022-07-22 14:18:52 +02:00
mach-davinci ARM: davinci: Convert comma to semicolon 2024-07-18 13:18:36 +02:00
mach-digicolor treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mach-dove ARM: make ARCH_MULTIPLATFORM user-visible 2022-08-30 11:18:09 +02:00
mach-ep93xx ep93xx: clock: Fix off by one in ep93xx_div_recalc_rate() 2024-10-17 15:21:12 +02:00
mach-exynos ARM: exynos: Fix refcount leak in exynos_map_pmu 2022-06-06 10:40:57 +02:00
mach-footbridge Merge branch 'arm-multiplatform-cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc into arm/soc 2022-09-15 22:20:59 +02:00
mach-gemini ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-highbank ARM/dma-mapping: use dma-direct unconditionally 2022-07-07 18:18:57 +02:00
mach-hisi genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK depends on SMP 2022-07-07 09:38:04 +01:00
mach-hpe ARM: hpe: Introduce the HPE GXP architecture 2022-05-18 14:05:53 +02:00
mach-imx ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init 2023-12-13 18:39:16 +01:00
mach-iop32x ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-ixp4xx ARM: ixp4xx: fix typos in comments 2022-08-29 11:06:16 +02:00
mach-keystone ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-lpc18xx ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-lpc32xx ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-mediatek arm: mediatek: select arch timer for mt7629 2022-04-22 17:12:05 +02:00
mach-meson ARM: meson: Fix refcount leak in meson_smp_prepare_cpus 2022-06-10 08:43:05 +02:00
mach-milbeaut treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mach-mmp ARM: mmp: fix timer_read delay 2022-12-31 13:31:54 +01:00
mach-moxart ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-mstar ARM: SoC updates for 5.18 2022-03-23 18:20:09 -07:00
mach-mv78xx0 ARM: make ARCH_MULTIPLATFORM user-visible 2022-08-30 11:18:09 +02:00
mach-mvebu ARM: make ARCH_MULTIPLATFORM user-visible 2022-08-30 11:18:09 +02:00
mach-mxs ARM: mxs: fix memory leak in mxs_machine_init() 2022-11-19 09:40:36 +08:00
mach-nomadik ARM: ARMv4T/v5 multiplatform support for v5.19, part 1 2022-05-26 10:43:09 -07:00
mach-npcm ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-nspire ARM: Kconfig: clean up platform selection 2022-08-18 16:44:59 +02:00
mach-omap1 ARM: OMAP: timer32K: fix all kernel-doc warnings 2023-11-02 09:35:25 +01:00
mach-omap2 Revert "ASoC: ti: Convert Pandora ASoC to GPIO descriptors" 2024-04-29 12:32:48 +02:00
mach-orion5x ARM: orion5x: fix d2net gpio initialization 2023-07-19 16:22:14 +02:00
mach-oxnas ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-pxa ARM: spitz: fix GPIO assignment for backlight 2024-08-03 08:49:02 +02:00
mach-qcom ARM: mach-qcom: Add support for MSM8909 2022-07-18 18:06:08 -05:00
mach-rda treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mach-realtek ARM: Prepare Realtek RTD1195 2020-04-12 23:13:38 +02:00
mach-rockchip ARM: rockchip: Add missing of_node_put() in rockchip_suspend_init() 2022-06-17 19:05:51 +02:00
mach-rpc ARM: Kconfig: clean up platform selection 2022-08-18 16:44:59 +02:00
mach-s3c ARM: s3c: fix s3c64xx_set_timer_source prototype 2023-03-10 09:32:38 +01:00
mach-s5pv210 ARM: samsung: Remove HAVE_S3C2410_I2C and use direct dependencies 2021-11-21 17:46:18 +01:00
mach-sa1100 ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings 2023-05-24 17:32:31 +01:00
mach-shmobile ARM: shmobile: Drop selecting SOC_BUS 2022-09-18 14:51:10 +02:00
mach-socfpga ARM: rework endianess selection 2022-04-08 17:20:54 +02:00
mach-spear ARM: spear6xx: Staticize few definitions 2022-10-10 10:38:33 +02:00
mach-sti Revert "ARM: sti: Implement dummy L2 cache's write_sec" 2020-06-28 14:46:54 +02:00
mach-stm32 ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +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:50:09 +01:00
mach-tegra ARM: tegra: Fix typos in comments 2022-04-06 15:33:14 +02:00
mach-uniphier ARM: uniphier: select RESET_CONTROLLER 2018-07-31 19:04:41 -07:00
mach-ux500 ARM: remove support for NOMMU ARMv4/v5 2022-03-17 09:13:13 +01:00
mach-versatile ARM: versatile: fix OF node leak in CPUs prepare 2024-10-17 15:20:47 +02:00
mach-vt8500 ARM: remove obsolete Makefile.boot infrastructure 2022-08-18 16:44:59 +02:00
mach-zynq ARM: zynq: Fix refcount leak in zynq_early_slcr_init 2023-03-10 09:32:33 +01:00
mm ARM: 9431/1: mm: Pair atomic_set_release() with _read_acquire() 2024-12-14 19:54:14 +01:00
net bpf, arm: Remove unused function emit_a32_alu_r() 2022-06-14 22:04:16 +02:00
nwfpe ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod 2023-01-07 11:11:49 +01:00
plat-orion ARM: orion: fix include path 2022-09-23 21:55:54 +02:00
probes ARM: 9303/1: kprobes: avoid missing-declaration warnings 2023-07-19 16:21:01 +02:00
tools arch: syscalls: simplify uapi/kapi directory creation 2022-03-31 12:03:46 +09:00
vdso randstruct: Split randstruct Makefile and CFLAGS 2022-05-08 01:33:06 -07:00
vfp printk: Userspace format indexing support 2021-07-19 11:57:48 +02:00
xen xen: simplify evtchn_do_upcall() call maze 2023-12-08 08:51:20 +01:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig ARM: cpu: Switch to arch_cpu_finalize_init() 2023-08-08 20:03:46 +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: make ARCH_MULTIPLATFORM user-visible 2022-08-30 11:18:09 +02:00
Makefile Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00