Commit ef08d955 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

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: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ebc933d1c530a19ef3cf7983f6ae94814f6e92ac.1603348103.git.christophe.leroy@csgroup.eu
parent 91ec450f
...@@ -20,6 +20,17 @@ static inline void _tlbie(unsigned long address) ...@@ -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) ...@@ -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:
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment