2005-04-16 15:20:36 -07:00
/*
2005-11-04 10:20:27 +11:00
* TLB shootdown specifics for powerpc
2005-04-16 15:20:36 -07:00
*
2005-11-04 10:20:27 +11:00
* Copyright ( C ) 2002 Anton Blanchard , IBM Corp .
2005-04-16 15:20:36 -07:00
* Copyright ( C ) 2002 Paul Mackerras , IBM Corp .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version
* 2 of the License , or ( at your option ) any later version .
*/
2005-11-04 10:20:27 +11:00
# ifndef _ASM_POWERPC_TLB_H
# define _ASM_POWERPC_TLB_H
2005-12-16 22:43:46 +01:00
# ifdef __KERNEL__
2005-04-16 15:20:36 -07:00
2005-11-04 10:20:27 +11:00
# ifndef __powerpc64__
2005-04-16 15:20:36 -07:00
# include <asm/pgtable.h>
2005-11-04 10:20:27 +11:00
# endif
2005-04-16 15:20:36 -07:00
# include <asm/pgalloc.h>
# include <asm/tlbflush.h>
2005-11-04 10:20:27 +11:00
# ifndef __powerpc64__
2005-04-16 15:20:36 -07:00
# include <asm/page.h>
# include <asm/mmu.h>
2005-11-04 10:20:27 +11:00
# endif
2005-04-16 15:20:36 -07:00
2007-10-02 13:30:04 -07:00
# include <linux/pagemap.h>
2005-11-04 10:20:27 +11:00
# define tlb_start_vma(tlb, vma) do { } while (0)
# define tlb_end_vma(tlb, vma) do { } while (0)
2005-04-16 15:20:36 -07:00
extern void tlb_flush ( struct mmu_gather * tlb ) ;
/* Get the generic bits... */
# include <asm-generic/tlb.h>
extern void flush_hash_entry ( struct mm_struct * mm , pte_t * ptep ,
unsigned long address ) ;
static inline void __tlb_remove_tlb_entry ( struct mmu_gather * tlb , pte_t * ptep ,
2009-07-23 23:15:28 +00:00
unsigned long address )
2005-04-16 15:20:36 -07:00
{
2009-07-23 23:15:28 +00:00
# ifdef CONFIG_PPC_STD_MMU_32
2005-04-16 15:20:36 -07:00
if ( pte_val ( * ptep ) & _PAGE_HASHPTE )
flush_hash_entry ( tlb - > mm , ptep , address ) ;
2009-07-23 23:15:28 +00:00
# endif
2005-04-16 15:20:36 -07:00
}
2005-12-16 22:43:46 +01:00
# endif /* __KERNEL__ */
2005-11-04 10:20:27 +11:00
# endif /* __ASM_POWERPC_TLB_H */