tlbflush.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2008-2009 Michal Simek <[email protected]>
  4. * Copyright (C) 2008-2009 PetaLogix
  5. * Copyright (C) 2006 Atmark Techno, Inc.
  6. */
  7. #ifndef _ASM_MICROBLAZE_TLBFLUSH_H
  8. #define _ASM_MICROBLAZE_TLBFLUSH_H
  9. #include <linux/sched.h>
  10. #include <linux/threads.h>
  11. #include <asm/processor.h> /* For TASK_SIZE */
  12. #include <asm/mmu.h>
  13. #include <asm/page.h>
  14. extern void _tlbie(unsigned long address);
  15. extern void _tlbia(void);
  16. #define __tlbia() { preempt_disable(); _tlbia(); preempt_enable(); }
  17. #define __tlbie(x) { _tlbie(x); }
  18. static inline void local_flush_tlb_all(void)
  19. { __tlbia(); }
  20. static inline void local_flush_tlb_mm(struct mm_struct *mm)
  21. { __tlbia(); }
  22. static inline void local_flush_tlb_page(struct vm_area_struct *vma,
  23. unsigned long vmaddr)
  24. { __tlbie(vmaddr); }
  25. static inline void local_flush_tlb_range(struct vm_area_struct *vma,
  26. unsigned long start, unsigned long end)
  27. { __tlbia(); }
  28. #define flush_tlb_kernel_range(start, end) do { } while (0)
  29. #define update_mmu_cache(vma, addr, ptep) do { } while (0)
  30. #define flush_tlb_all local_flush_tlb_all
  31. #define flush_tlb_mm local_flush_tlb_mm
  32. #define flush_tlb_page local_flush_tlb_page
  33. #define flush_tlb_range local_flush_tlb_range
  34. /*
  35. * This is called in munmap when we have freed up some page-table
  36. * pages. We don't need to do anything here, there's nothing special
  37. * about our page-table pages. -- paulus
  38. */
  39. static inline void flush_tlb_pgtables(struct mm_struct *mm,
  40. unsigned long start, unsigned long end) { }
  41. #endif /* _ASM_MICROBLAZE_TLBFLUSH_H */