powerpc/64: Call setup_barrier_nospec() from setup_arch()
authorMichael Ellerman <mpe@ellerman.id.au>
Fri, 27 Jul 2018 23:06:35 +0000 (09:06 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 7 Aug 2018 14:32:23 +0000 (00:32 +1000)
Currently we require platform code to call setup_barrier_nospec(). But
if we add an empty definition for the !CONFIG_PPC_BARRIER_NOSPEC case
then we can call it in setup_arch().

Signed-off-by: Diana Craciun <diana.craciun@nxp.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/setup.h
arch/powerpc/kernel/setup-common.c
arch/powerpc/platforms/powernv/setup.c
arch/powerpc/platforms/pseries/setup.c

index 8205f9f..1a951b0 100644 (file)
@@ -52,7 +52,11 @@ enum l1d_flush_type {
 
 void setup_rfi_flush(enum l1d_flush_type, bool enable);
 void do_rfi_flush_fixups(enum l1d_flush_type types);
+#ifdef CONFIG_PPC_BARRIER_NOSPEC
 void setup_barrier_nospec(void);
+#else
+static inline void setup_barrier_nospec(void) { };
+#endif
 void do_barrier_nospec_fixups(bool enable);
 extern bool barrier_nospec_enabled;
 
index 40b44bb..93fa0c9 100644 (file)
@@ -972,6 +972,8 @@ void __init setup_arch(char **cmdline_p)
        if (ppc_md.setup_arch)
                ppc_md.setup_arch();
 
+       setup_barrier_nospec();
+
        paging_init();
 
        /* Initialize the MMU context management stuff. */
index 7b09f66..3fc2530 100644 (file)
@@ -124,7 +124,6 @@ static void pnv_setup_rfi_flush(void)
                  security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV));
 
        setup_rfi_flush(type, enable);
-       setup_barrier_nospec();
 }
 
 static void __init pnv_setup_arch(void)
index b411a74..08f0c5d 100644 (file)
@@ -551,7 +551,6 @@ void pseries_setup_rfi_flush(void)
                 security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR);
 
        setup_rfi_flush(types, enable);
-       setup_barrier_nospec();
 }
 
 #ifdef CONFIG_PCI_IOV