|
@@ -468,26 +468,18 @@ static void pseries_setup_rfi_flush(void)
|
|
|
|
|
|
/* Enable by default */
|
|
|
enable = true;
|
|
|
+ types = L1D_FLUSH_FALLBACK;
|
|
|
|
|
|
rc = plpar_get_cpu_characteristics(&result);
|
|
|
if (rc == H_SUCCESS) {
|
|
|
- types = L1D_FLUSH_NONE;
|
|
|
-
|
|
|
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;
|
|
|
|
|
|
- /* Use fallback if nothing set in hcall */
|
|
|
- if (types == L1D_FLUSH_NONE)
|
|
|
- types = L1D_FLUSH_FALLBACK;
|
|
|
-
|
|
|
if ((!(result.behaviour & H_CPU_BEHAV_L1D_FLUSH_PR)) ||
|
|
|
(!(result.behaviour & H_CPU_BEHAV_FAVOUR_SECURITY)))
|
|
|
enable = false;
|
|
|
- } else {
|
|
|
- /* Default to fallback if case hcall is not available */
|
|
|
- types = L1D_FLUSH_FALLBACK;
|
|
|
}
|
|
|
|
|
|
setup_rfi_flush(types, enable);
|