]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
powerpc/mm: Move pgdir setting into a helper
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 24 Jul 2017 04:27:58 +0000 (14:27 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 23 Aug 2017 12:27:42 +0000 (22:27 +1000)
Makes switch_mm_irqs_off() a bit more readable

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/mmu_context.h

index 2ab328f0159e0b67d5c8f476f049792622d9581d..992123e4e7f6b5f5180232a87d893a0236187298 100644 (file)
@@ -77,6 +77,26 @@ extern void switch_cop(struct mm_struct *next);
 extern int use_cop(unsigned long acop, struct mm_struct *mm);
 extern void drop_cop(unsigned long acop, struct mm_struct *mm);
 
+#if defined(CONFIG_PPC32)
+static inline void switch_mm_pgdir(struct task_struct *tsk,
+                                  struct mm_struct *mm)
+{
+       /* 32-bit keeps track of the current PGDIR in the thread struct */
+       tsk->thread.pgdir = mm->pgd;
+}
+#elif defined(CONFIG_PPC_BOOK3E_64)
+static inline void switch_mm_pgdir(struct task_struct *tsk,
+                                  struct mm_struct *mm)
+{
+       /* 64-bit Book3E keeps track of current PGD in the PACA */
+       get_paca()->pgd = mm->pgd;
+}
+#else
+static inline void switch_mm_pgdir(struct task_struct *tsk,
+                                  struct mm_struct *mm) { }
+#endif
+
+
 /*
  * switch_mm is the entry point called from the architecture independent
  * code in kernel/sched/core.c
@@ -111,15 +131,9 @@ static inline void switch_mm_irqs_off(struct mm_struct *prev,
                new_on_cpu = true;
        }
 
-       /* 32-bit keeps track of the current PGDIR in the thread struct */
-#ifdef CONFIG_PPC32
-       tsk->thread.pgdir = next->pgd;
-#endif /* CONFIG_PPC32 */
+       /* Some subarchs need to track the PGD elsewhere */
+       switch_mm_pgdir(tsk, next);
 
-       /* 64-bit Book3E keeps track of current PGD in the PACA */
-#ifdef CONFIG_PPC_BOOK3E_64
-       get_paca()->pgd = next->pgd;
-#endif
        /* Nothing else to do if we aren't actually switching */
        if (prev == next)
                return;