diff options
Diffstat (limited to 'arch/arm/include/asm/assembler.h')
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index b17ee03d280b..88286dd483ff 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -467,6 +467,17 @@ THUMB(	orr	\reg , \reg , #PSR_T_BIT	)  #endif  	.endm +	.macro uaccess_mask_range_ptr, addr:req, size:req, limit:req, tmp:req +#ifdef CONFIG_CPU_SPECTRE +	sub	\tmp, \limit, #1 +	subs	\tmp, \tmp, \addr	@ tmp = limit - 1 - addr +	addhs	\tmp, \tmp, #1		@ if (tmp >= 0) { +	subhss	\tmp, \tmp, \size	@ tmp = limit - (addr + size) } +	movlo	\addr, #0		@ if (tmp < 0) addr = NULL +	csdb +#endif +	.endm +  	.macro	uaccess_disable, tmp, isb=1  #ifdef CONFIG_CPU_SW_DOMAIN_PAN  	/* | 
