OSDN Git Service

Merge branch 'wip-mips-pm' of https://github.com/paulburton/linux into mips-for-linux...
[uclinux-h8/linux.git] / arch / mips / include / asm / mmu_context.h
index 0f75aac..2e373da 100644 (file)
@@ -27,11 +27,15 @@ do {                                                                        \
 } while (0)
 
 #ifdef CONFIG_MIPS_PGD_C0_CONTEXT
+
+#define TLBMISS_HANDLER_RESTORE()                                      \
+       write_c0_xcontext((unsigned long) smp_processor_id() <<         \
+                         SMP_CPUID_REGSHIFT)
+
 #define TLBMISS_HANDLER_SETUP()                                                \
        do {                                                            \
                TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir);              \
-               write_c0_xcontext((unsigned long) smp_processor_id() << \
-                                               SMP_CPUID_REGSHIFT);    \
+               TLBMISS_HANDLER_RESTORE();                              \
        } while (0)
 
 #else /* !CONFIG_MIPS_PGD_C0_CONTEXT: using  pgd_current*/
@@ -43,9 +47,12 @@ do {                                                                 \
  */
 extern unsigned long pgd_current[];
 
-#define TLBMISS_HANDLER_SETUP()                                                \
+#define TLBMISS_HANDLER_RESTORE()                                      \
        write_c0_context((unsigned long) smp_processor_id() <<          \
-                                               SMP_CPUID_REGSHIFT);    \
+                        SMP_CPUID_REGSHIFT)
+
+#define TLBMISS_HANDLER_SETUP()                                                \
+       TLBMISS_HANDLER_RESTORE();                                      \
        back_to_back_c0_hazard();                                       \
        TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
 #endif /* CONFIG_MIPS_PGD_C0_CONTEXT*/