|
@@ -215,12 +215,8 @@ static bool tlb_next_batch(struct mmu_gather *tlb)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-/* tlb_gather_mmu
|
|
|
- * Called to initialize an (on-stack) mmu_gather structure for page-table
|
|
|
- * tear-down from @mm. The @fullmm argument is used when @mm is without
|
|
|
- * users and we're going to destroy the full address space (exit/execve).
|
|
|
- */
|
|
|
-void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end)
|
|
|
+void arch_tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm,
|
|
|
+ unsigned long start, unsigned long end)
|
|
|
{
|
|
|
tlb->mm = mm;
|
|
|
|
|
@@ -275,7 +271,8 @@ void tlb_flush_mmu(struct mmu_gather *tlb)
|
|
|
* Called at the end of the shootdown operation to free up any resources
|
|
|
* that were required.
|
|
|
*/
|
|
|
-void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
|
|
|
+void arch_tlb_finish_mmu(struct mmu_gather *tlb,
|
|
|
+ unsigned long start, unsigned long end)
|
|
|
{
|
|
|
struct mmu_gather_batch *batch, *next;
|
|
|
|
|
@@ -398,6 +395,23 @@ void tlb_remove_table(struct mmu_gather *tlb, void *table)
|
|
|
|
|
|
#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
|
|
|
|
|
|
+/* tlb_gather_mmu
|
|
|
+ * Called to initialize an (on-stack) mmu_gather structure for page-table
|
|
|
+ * tear-down from @mm. The @fullmm argument is used when @mm is without
|
|
|
+ * users and we're going to destroy the full address space (exit/execve).
|
|
|
+ */
|
|
|
+void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm,
|
|
|
+ unsigned long start, unsigned long end)
|
|
|
+{
|
|
|
+ arch_tlb_gather_mmu(tlb, mm, start, end);
|
|
|
+}
|
|
|
+
|
|
|
+void tlb_finish_mmu(struct mmu_gather *tlb,
|
|
|
+ unsigned long start, unsigned long end)
|
|
|
+{
|
|
|
+ arch_tlb_finish_mmu(tlb, start, end);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Note: this doesn't free the actual pages themselves. That
|
|
|
* has been handled earlier when unmapping all the memory regions.
|