Commit df08994d authored by Juerg Haefliger's avatar Juerg Haefliger Committed by Stefan Bader

Revert "UBUNTU: SAUCE: rfi-flush: Rework pseries logic to be more cautious"

This reverts commit c049d338.

CVE-2017-5754

BugLink: http://bugs.launchpad.net/bugs/1756121

The functionality of this commit will be provided by the following
upstream patch series:
  * powerpc/64s: Allow control of RFI flush via debugfs
  * powerpc/64s: Wire up cpu_show_meltdown()
  * powerpc/powernv: Check device-tree for RFI flush settings
  * powerpc/pseries: Query hypervisor for RFI flush settings
  * powerpc/64s: Support disabling RFI flush with no_rfi_flush and nopti
  * powerpc/64s: Add support for RFI flush of L1-D cache
  * powerpc/64s: Convert slb_miss_common to use RFI_TO_USER/KERNEL
  * powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL
  * powerpc/64: Convert fast_exception_return to use RFI_TO_USER/KERNEL
  * powerpc/64s: Simple RFI macro conversions
  * powerpc/64: Add macros for annotating the destination of rfid/hrfid
  * powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
parent 21d246a7
...@@ -505,27 +505,21 @@ static void pSeries_setup_rfi_flush(void) ...@@ -505,27 +505,21 @@ static void pSeries_setup_rfi_flush(void)
enum l1d_flush_type types; enum l1d_flush_type types;
bool enable; bool enable;
/* Enable by default */ /* Default to fallback in case hcall is not available */
types = L1D_FLUSH_FALLBACK;
enable = true; enable = true;
rc = plpar_get_cpu_characteristics(&character, &behaviour); rc = plpar_get_cpu_characteristics(&character, &behaviour);
if (rc == H_SUCCESS) { if (rc == H_SUCCESS) {
/* Default to no flush, unless firmware says otherwise */
types = L1D_FLUSH_NONE; types = L1D_FLUSH_NONE;
if (character & H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH) if (character & H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH)
types |= L1D_FLUSH_MTTRIG; types |= L1D_FLUSH_MTTRIG;
if (character & H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH) if (character & H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH)
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 (!(behaviour & H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV)) if (!(behaviour & H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV))
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