• Marc Zyngier's avatar
    arm64: Run ARCH_WORKAROUND_2 enabling code on all CPUs · 39533e12
    Marc Zyngier authored
    Commit 606f8e7b ("arm64: capabilities: Use linear array for
    detection and verification") changed the way we deal with per-CPU errata
    by only calling the .matches() callback until one CPU is found to be
    affected. At this point, .matches() stop being called, and .cpu_enable()
    will be called on all CPUs.
    
    This breaks the ARCH_WORKAROUND_2 handling, as only a single CPU will be
    mitigated.
    
    In order to address this, forcefully call the .matches() callback from a
    .cpu_enable() callback, which brings us back to the original behaviour.
    
    Fixes: 606f8e7b ("arm64: capabilities: Use linear array for detection and verification")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    39533e12
cpu_errata.c 25.2 KB