aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-07-05 15:03:42 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2016-07-21 18:54:55 +1000
commitc4bd6cb87c9e28a7d9f4a97db5a06cc538eb5e48 (patch)
tree92bce4a09fcc9d7a686e61d47cbfba1a047f4041 /arch/powerpc/kernel
parentpowerpc: Factor do_feature_fixup calls (diff)
downloadlinux-dev-c4bd6cb87c9e28a7d9f4a97db5a06cc538eb5e48.tar.xz
linux-dev-c4bd6cb87c9e28a7d9f4a97db5a06cc538eb5e48.zip
powerpc: Move 64-bit feature fixup earlier
Make it part of early_setup() as we really want the feature fixups to be applied before we turn on the MMU since they can have an impact on the various assembly path related to MMU management and interrupts. This makes 64-bit match what 32-bit does. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/setup_64.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 373ef9d692f6..0a6d5f70cbd4 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -285,6 +285,9 @@ void __init early_setup(unsigned long dt_ptr)
/* Initialize the hash table or TLB handling */
early_init_mmu();
+ /* Apply all the dynamic patching */
+ apply_feature_fixups();
+
/*
* At this point, we can let interrupts switch to virtual mode
* (the MMU has been setup), so adjust the MSR in the PACA to
@@ -467,8 +470,6 @@ void __init setup_system(void)
{
DBG(" -> setup_system()\n");
- apply_feature_fixups();
-
/*
* Unflatten the device-tree passed by prom_init or kexec
*/