arm-trusted-firmware/include
Andre Przywara 2be491b1dc aarch64/arm: Add compiler barrier to barrier instructions
When issuing barrier instructions like DSB or DMB, we must make sure
that the compiler does not undermine out efforts to fence off
instructions. Currently the compiler is free to move the barrier
instruction around, in respect to former or later memory access
statements, which is not what we want.

Add a compiler barrier to the inline assembly statement in our
DEFINE_SYSOP_TYPE_FUNC macro, to make sure memory accesses are not
reordered by the compiler.
This is in line with Linux' definition:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/include/asm/barrier.h

Since those instructions share a definition, apart from DSB and DMB this
now also covers some TLBI instructions. Having a compiler barrier there
also is useful, although we probably have stronger barriers in place
already.

Change-Id: If6fe97b13a562643a643efc507cb4aad29daa5b6
Reported-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2020-10-27 16:15:00 +00:00
..
arch aarch64/arm: Add compiler barrier to barrier instructions 2020-10-27 16:15:00 +00:00
bl1 Specify signed-ness of constants 2020-08-14 11:36:05 +00:00
bl2 BL2_AT_EL3: Enable pointer authentication support 2019-02-27 11:58:09 +00:00
bl2u Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
bl31 Use correct type when reading SCR register 2020-01-28 11:10:48 +00:00
bl32 spd: tlkd: support new TLK SMCs for RPMB service 2020-03-21 19:00:05 -07:00
common Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
drivers Merge "Don't return error information from console_flush" into integration 2020-10-14 18:59:27 +00:00
dt-bindings fdts: stm32mp1: realign device tree with kernel 2020-09-24 09:07:57 +02:00
export Increase type widths to satisfy width requirements 2020-10-12 10:55:03 -05:00
lib Merge "Increase type widths to satisfy width requirements" into integration 2020-10-18 14:51:00 +00:00
plat plat: arm: Make BL32_BASE platform dependent when SPD_spmd is enabled 2020-10-20 20:06:59 +00:00
services SPMC: manifest changes to support multicore boot 2020-08-20 18:06:06 +01:00
tools_share lib: fconf: Implement a parser to populate CoT 2020-09-15 16:13:26 +01:00