powerpc/32s: Inline tlb_flush()
On book3s/32, tlb_flush() does nothing when the CPU has a hash table, it calls _tlbia() otherwise. Inline it. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/ebc933d1c530a19ef3cf7983f6ae94814f6e92ac.1603348103.git.christophe.leroy@csgroup.eu
This commit is contained in:
committed by
Michael Ellerman
parent
91ec450f8d
commit
ef08d95546
@@ -20,6 +20,17 @@ static inline void _tlbie(unsigned long address)
|
|||||||
#endif
|
#endif
|
||||||
void _tlbia(void);
|
void _tlbia(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Called at the end of a mmu_gather operation to make sure the
|
||||||
|
* TLB flush is completely done.
|
||||||
|
*/
|
||||||
|
static inline void tlb_flush(struct mmu_gather *tlb)
|
||||||
|
{
|
||||||
|
/* 603 needs to flush the whole TLB here since it doesn't use a hash table. */
|
||||||
|
if (!mmu_has_feature(MMU_FTR_HPTE_TABLE))
|
||||||
|
_tlbia();
|
||||||
|
}
|
||||||
|
|
||||||
static inline void flush_range(struct mm_struct *mm, unsigned long start, unsigned long end)
|
static inline void flush_range(struct mm_struct *mm, unsigned long start, unsigned long end)
|
||||||
{
|
{
|
||||||
start &= PAGE_MASK;
|
start &= PAGE_MASK;
|
||||||
|
|||||||
@@ -43,21 +43,6 @@ void flush_hash_entry(struct mm_struct *mm, pte_t *ptep, unsigned long addr)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(flush_hash_entry);
|
EXPORT_SYMBOL(flush_hash_entry);
|
||||||
|
|
||||||
/*
|
|
||||||
* Called at the end of a mmu_gather operation to make sure the
|
|
||||||
* TLB flush is completely done.
|
|
||||||
*/
|
|
||||||
void tlb_flush(struct mmu_gather *tlb)
|
|
||||||
{
|
|
||||||
if (!mmu_has_feature(MMU_FTR_HPTE_TABLE)) {
|
|
||||||
/*
|
|
||||||
* 603 needs to flush the whole TLB here since
|
|
||||||
* it doesn't use a hash table.
|
|
||||||
*/
|
|
||||||
_tlbia();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TLB flushing:
|
* TLB flushing:
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user