commit 2e4a16161fcd324b1f9bf6cb6856529f7eaf0689 upstream.

Now that we have the security flags we can simplify the code in
pseries_setup_rfi_flush() because the security flags have pessimistic
defaults.

Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
---
 arch/powerpc/platforms/pseries/setup.c | 27 ++++++++++++--------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/setup.c 
b/arch/powerpc/platforms/pseries/setup.c
index 7c7c95c00252..3462194ed329 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -541,30 +541,27 @@ void pseries_setup_rfi_flush(void)
        bool enable;
        long rc;
 
-       /* Enable by default */
-       enable = true;
-       types = L1D_FLUSH_FALLBACK;
-
        rc = plpar_get_cpu_characteristics(&result);
-       if (rc == H_SUCCESS) {
+       if (rc == H_SUCCESS)
                init_cpu_char_feature_flags(&result);
 
-               if (result.character & H_CPU_CHAR_L1D_FLUSH_TRIG2)
-                       types |= L1D_FLUSH_MTTRIG;
-               if (result.character & H_CPU_CHAR_L1D_FLUSH_ORI30)
-                       types |= L1D_FLUSH_ORI;
-
-               if ((!(result.behaviour & H_CPU_BEHAV_L1D_FLUSH_PR)) ||
-                   (!(result.behaviour & H_CPU_BEHAV_FAVOUR_SECURITY)))
-                       enable = false;
-       }
-
        /*
         * We're the guest so this doesn't apply to us, clear it to simplify
         * handling of it elsewhere.
         */
        security_ftr_clear(SEC_FTR_L1D_FLUSH_HV);
 
+       types = L1D_FLUSH_FALLBACK;
+
+       if (security_ftr_enabled(SEC_FTR_L1D_FLUSH_TRIG2))
+               types |= L1D_FLUSH_MTTRIG;
+
+       if (security_ftr_enabled(SEC_FTR_L1D_FLUSH_ORI30))
+               types |= L1D_FLUSH_ORI;
+
+       enable = security_ftr_enabled(SEC_FTR_FAVOUR_SECURITY) && \
+                security_ftr_enabled(SEC_FTR_L1D_FLUSH_PR);
+
        setup_rfi_flush(types, enable);
 }
 
-- 
2.20.1

Reply via email to