]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
powerpc/rfi-flush: Always enable fallback flush on pseries
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 14 Mar 2018 22:40:40 +0000 (19:40 -0300)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 15 May 2018 05:35:30 +0000 (07:35 +0200)
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: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
CVE-2018-3639 (powerpc)

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

index 9b40484a8908cc7d1d52b80ec4292c62cc31f4e9..fb575a554dfde79aaffe21d4e4a674bf09779336 100644 (file)
@@ -464,26 +464,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);