]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
arm64: cpufeature: Pass capability structure to ->enable callback
authorWill Deacon <will.deacon@arm.com>
Tue, 2 Jan 2018 21:37:25 +0000 (21:37 +0000)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 7 Mar 2018 11:14:04 +0000 (12:14 +0100)
Commit 0a0d111d40fd upstream.

In order to invoke the CPU capability ->matches callback from the ->enable
callback for applying local-CPU workarounds, we need a handle on the
capability structure.

This patch passes a pointer to the capability structure to the ->enable
callback.

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit be53742befea9329b034f143e7e932cac54d3609)

CVE-2017-5753
CVE-2017-5715
CVE-2017-5754

Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
Acked-by: Brad Figg <brad.figg@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Acked-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
arch/arm64/kernel/cpufeature.c

index 9249cb7289925d445a3629e98a94878f3f2e9cd1..c284b855315f6e33ff902ffcfa8b81991117ef5e 100644 (file)
@@ -1144,7 +1144,7 @@ void __init enable_cpu_capabilities(const struct arm64_cpu_capabilities *caps)
                         * uses an IPI, giving us a PSTATE that disappears when
                         * we return.
                         */
-                       stop_machine(caps->enable, NULL, cpu_online_mask);
+                       stop_machine(caps->enable, (void *)caps, cpu_online_mask);
                }
        }
 }
@@ -1203,7 +1203,7 @@ verify_local_cpu_features(const struct arm64_cpu_capabilities *caps_list)
                        cpu_die_early();
                }
                if (caps->enable)
-                       caps->enable(NULL);
+                       caps->enable((void *)caps);
        }
 }