diff options
Diffstat (limited to 'arch/arm/include/asm/assembler.h')
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 10 | 
1 files changed, 3 insertions, 7 deletions
| diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index eb87200aa4b..05ee9eebad6 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -246,18 +246,14 @@   *   * This macro is intended for forcing the CPU into SVC mode at boot time.   * you cannot return to the original mode. - * - * Beware, it also clobers LR.   */  .macro safe_svcmode_maskall reg:req  #if __LINUX_ARM_ARCH__ >= 6  	mrs	\reg , cpsr -	mov	lr , \reg -	and	lr , lr , #MODE_MASK -	cmp	lr , #HYP_MODE -	orr	\reg , \reg , #PSR_I_BIT | PSR_F_BIT +	eor	\reg, \reg, #HYP_MODE +	tst	\reg, #MODE_MASK  	bic	\reg , \reg , #MODE_MASK -	orr	\reg , \reg , #SVC_MODE +	orr	\reg , \reg , #PSR_I_BIT | PSR_F_BIT | SVC_MODE  THUMB(	orr	\reg , \reg , #PSR_T_BIT	)  	bne	1f  	orr	\reg, \reg, #PSR_A_BIT | 
