Commit b91280f3 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/32s: Inline _tlbie() on non SMP



On non SMP, _tlbie() is just a tlbie plus a sync instruction.

Make it static inline.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/475136425541db5c7c8a0395d19d400525b251bc.1603348103.git.christophe.leroy@csgroup.eu
parent cfe32ad0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -12,7 +12,14 @@ extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
			    unsigned long end);
extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);

#ifdef CONFIG_SMP
void _tlbie(unsigned long address);
#else
static inline void _tlbie(unsigned long address)
{
	asm volatile ("tlbie %0; sync" : : "r" (address) : "memory");
}
#endif
void _tlbia(void);

static inline void local_flush_tlb_page(struct vm_area_struct *vma,
+2 −5
Original line number Diff line number Diff line
@@ -622,8 +622,8 @@ _ASM_NOKPROBE_SYMBOL(flush_hash_pages)
/*
 * Flush an entry from the TLB
 */
_GLOBAL(_tlbie)
#ifdef CONFIG_SMP
_GLOBAL(_tlbie)
	lwz	r8,TASK_CPU(r2)
	oris	r8,r8,11
	mfmsr	r10
@@ -647,12 +647,9 @@ _GLOBAL(_tlbie)
	stw	r0,0(r9)		/* clear mmu_hash_lock */
	mtmsr	r10
	isync
#else /* CONFIG_SMP */
	tlbie	r3
	sync
#endif /* CONFIG_SMP */
	blr
_ASM_NOKPROBE_SYMBOL(_tlbie)
#endif /* CONFIG_SMP */

/*
 * Flush the entire TLB. 603/603e only