Marc reported that v4.9.y hung at boot time on his GICv3 system, since the spectre backports. This is because the errata detection logic tries to enable a static key in the secondary bringup path, before the secondary CPU has configured its GICv3 CPU interface, causing it to blow up when it tries to IPI the other CPUs. This affects any local cpu feature detection in systems with heterogeneous CPUs. Some prior rework upstream moved this out of the secondary bringup path, which avoids the issue, so this series backports said rework. Thanks, Mark. Mark Rutland (1): arm64/cpufeature: don't use mutex in bringup path Suzuki K Poulose (1): arm64: Add hypervisor safe helper for checking constant capabilities arch/arm64/include/asm/cpufeature.h | 27 ++++++++++++++++++++------- arch/arm64/include/asm/kvm_host.h | 10 +++++++--- arch/arm64/include/asm/kvm_mmu.h | 2 +- arch/arm64/include/asm/mmu.h | 2 +- arch/arm64/kernel/cpufeature.c | 28 ++++++++++++++++++++++++---- arch/arm64/kernel/process.c | 2 +- drivers/irqchip/irq-gic-v3.c | 13 +------------ 7 files changed, 55 insertions(+), 29 deletions(-) -- 2.11.0