powerpc/64: Do feature patching before MMU init
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 26 Jul 2016 11:55:48 +0000 (21:55 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 1 Aug 2016 01:14:56 +0000 (11:14 +1000)
Up until now we needed to do the MMU init before feature patching,
because part of the MMU init was scanning the device tree and setting
and/or clearing some MMU feature bits.

Now that we have split that MMU feature modification out into routines
called from early_init_devtree() (called earlier) we can now do feature
patching before calling MMU init.

The advantage of this is it means the remainder of the MMU init runs
with the final set of features which will apply for the rest of the life
of the system. This means we don't have to special case anything called
from MMU init to deal with a changing set of feature bits.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/setup_64.c

index d8216ae..9846961 100644 (file)
@@ -298,12 +298,12 @@ void __init early_setup(unsigned long dt_ptr)
         */
        configure_exceptions();
 
-       /* Initialize the hash table or TLB handling */
-       early_init_mmu();
-
        /* Apply all the dynamic patching */
        apply_feature_fixups();
 
+       /* Initialize the hash table or TLB handling */
+       early_init_mmu();
+
        /*
         * At this point, we can let interrupts switch to virtual mode
         * (the MMU has been setup), so adjust the MSR in the PACA to