Commit 84749a58 authored by Michael Ellerman's avatar Michael Ellerman

powerpc/rfi-flush: Always enable fallback flush on pseries

This ensures the fallback flush area is always allocated on pseries,
so in case a LPAR is migrated from a patched to an unpatched system,
it is possible to enable the fallback flush in the target system.
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarMauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent abf110f3
...@@ -468,26 +468,18 @@ static void pseries_setup_rfi_flush(void) ...@@ -468,26 +468,18 @@ static void pseries_setup_rfi_flush(void)
/* Enable by default */ /* Enable by default */
enable = true; enable = true;
types = L1D_FLUSH_FALLBACK;
rc = plpar_get_cpu_characteristics(&result); rc = plpar_get_cpu_characteristics(&result);
if (rc == H_SUCCESS) { if (rc == H_SUCCESS) {
types = L1D_FLUSH_NONE;
if (result.character & H_CPU_CHAR_L1D_FLUSH_TRIG2) if (result.character & H_CPU_CHAR_L1D_FLUSH_TRIG2)
types |= L1D_FLUSH_MTTRIG; types |= L1D_FLUSH_MTTRIG;
if (result.character & H_CPU_CHAR_L1D_FLUSH_ORI30) if (result.character & H_CPU_CHAR_L1D_FLUSH_ORI30)
types |= L1D_FLUSH_ORI; 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)) || if ((!(result.behaviour & H_CPU_BEHAV_L1D_FLUSH_PR)) ||
(!(result.behaviour & H_CPU_BEHAV_FAVOUR_SECURITY))) (!(result.behaviour & H_CPU_BEHAV_FAVOUR_SECURITY)))
enable = false; enable = false;
} else {
/* Default to fallback if case hcall is not available */
types = L1D_FLUSH_FALLBACK;
} }
setup_rfi_flush(types, enable); setup_rfi_flush(types, enable);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment