arm64: Add support for SB barrier and patch in over DSB; ISB sequences
We currently use a DSB; ISB sequence to inhibit speculation in set_fs(). Whilst this works for current CPUs, future CPUs may implement a new SB barrier instruction which acts as an architected speculation barrier. On CPUs that support it, patch in an SB; NOP sequence over the DSB; ISB sequence and advertise the presence of the new instruction to userspace. Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
@@ -122,6 +122,19 @@
|
||||
hint #20
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Speculation barrier
|
||||
*/
|
||||
.macro sb
|
||||
alternative_if_not ARM64_HAS_SB
|
||||
dsb nsh
|
||||
isb
|
||||
alternative_else
|
||||
SB_BARRIER_INSN
|
||||
nop
|
||||
alternative_endif
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Sanitise a 64-bit bounded index wrt speculation, returning zero if out
|
||||
* of bounds.
|
||||
|
Reference in New Issue
Block a user