]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
UBUNTU: SAUCE: rfi-flush: update H_CPU_* macro names to upstream
authorMauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Mon, 7 May 2018 22:12:53 +0000 (19:12 -0300)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 15 May 2018 05:35:24 +0000 (07:35 +0200)
This is present in upstream commit:
  191eccb powerpc/pseries: Add H_GET_CPU_CHARACTERISTICS flags & wrapper

And the missing macros will be added shortly with upstream commit:
  c4bc366 powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flags

This will help with future backports.

Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
CVE-2018-3639 (powerpc)

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
arch/powerpc/include/asm/hvcall.h
arch/powerpc/platforms/pseries/setup.c

index a55243a8e7de9d31cea4804c8463bbe58a0e2c9f..476d2d78d08fb658a799138898b9af623de1ac10 100644 (file)
 /* >= 0 values are CPU number */
 
 /* H_GET_CPU_CHARACTERISTICS return values */
-#define H_GET_CPU_CHAR_CHAR_ORI31_SPEC_BAR     PPC_BIT(0)
-#define H_GET_CPU_CHAR_CHAR_BCCTR_SERIAL       PPC_BIT(1)
-#define H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH     PPC_BIT(2)
-#define H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH   PPC_BIT(3)
-#define H_GET_CPU_CHAR_CHAR_L1D_PRIVATE                PPC_BIT(4)
-#define H_GET_CPU_CHAR_CHAR_BC_HINTS_HONORED   PPC_BIT(5)
-#define H_GET_CPU_CHAR_CHAR_MTTRID01_THR_CFG   PPC_BIT(6)
-
-#define H_GET_CPU_CHAR_BEHAV_FAV_SEC_VS_PERF   PPC_BIT(0)
-#define H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV PPC_BIT(1)
-#define H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK PPC_BIT(2)
+#define H_CPU_CHAR_SPEC_BAR_ORI31      (1ull << 63) // IBM bit 0
+#define H_CPU_CHAR_BCCTRL_SERIALISED   (1ull << 62) // IBM bit 1
+#define H_CPU_CHAR_L1D_FLUSH_ORI30     (1ull << 61) // IBM bit 2
+#define H_CPU_CHAR_L1D_FLUSH_TRIG2     (1ull << 60) // IBM bit 3
+#define H_CPU_CHAR_L1D_THREAD_PRIV     (1ull << 59) // IBM bit 4
+
+#define H_CPU_BEHAV_FAVOUR_SECURITY    (1ull << 63) // IBM bit 0
+#define H_CPU_BEHAV_L1D_FLUSH_PR       (1ull << 62) // IBM bit 1
+#define H_CPU_BEHAV_BNDS_CHK_SPEC_BAR  (1ull << 61) // IBM bit 2
 
 /* Flag values used in H_REGISTER_PROC_TBL hcall */
 #define PROC_TABLE_OP_MASK     0x18
index 6fbf374fde0fb06cec768824dd8c66cdabfd0842..06d9dc7fb2d96a0c967a14b3f74f54ed620cb571 100644 (file)
@@ -468,16 +468,16 @@ static void pSeries_setup_rfi_flush(void)
        if (rc == H_SUCCESS) {
                types = L1D_FLUSH_NONE;
 
-               if (character & H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH)
+               if (character & H_CPU_CHAR_L1D_FLUSH_TRIG2)
                        types |= L1D_FLUSH_MTTRIG;
-               if (character & H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH)
+               if (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 (!(behaviour & H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV))
+               if (!(behaviour & H_CPU_BEHAV_L1D_FLUSH_PR))
                        enable = false;
        } else {
                /* Default to fallback if case hcall is not available */