Commit 952f0331 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Russell King (Oracle)
Browse files

ARM: 9194/1: assembler: simplify ldr_this_cpu for !SMP builds



When CONFIG_SMP is not defined, the CPU offset is always zero, and so
we can simplify the sequence to load a per-CPU variable.

Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
parent 7719a68b
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -692,8 +692,12 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
	/*
	 * ldr_va - load a 32-bit word from the virtual address of \sym
	 */
	.macro		ldr_va, rd:req, sym:req, cond
	.macro		ldr_va, rd:req, sym:req, cond, tmp
	.ifnb		\tmp
	__ldst_va	ldr, \rd, \tmp, \sym, \cond
	.else
	__ldst_va	ldr, \rd, \rd, \sym, \cond
	.endif
	.endm

	/*
@@ -727,7 +731,9 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
	 *		  are permitted to overlap with 'rd' if != sp
	 */
	.macro		ldr_this_cpu, rd:req, sym:req, t1:req, t2:req
#if __LINUX_ARM_ARCH__ >= 7 || \
#ifndef CONFIG_SMP
	ldr_va		\rd, \sym, tmp=\t1
#elif __LINUX_ARM_ARCH__ >= 7 || \
      !defined(CONFIG_ARM_HAS_GROUP_RELOCS) || \
      (defined(MODULE) && defined(CONFIG_ARM_MODULE_PLTS))
	this_cpu_offset	\t1