Message ID | 20200911181611.2073183-1-maz@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late | expand |
On Fri, Sep 11, 2020 at 07:16:11PM +0100, Marc Zyngier wrote: > Now that we allow CPUs affected by erratum 1418040 to come in late, > this prevents their unaffected sibblings from coming in late (or > coming back after a suspend or hotplug-off, which amounts to the > same thing). > > To allow this, we need to add ARM64_CPUCAP_OPTIONAL_FOR_LATE_CPU, > which amounts to set .type to ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE. > > Reported-by: Doug Anderson <dianders@google.com> > Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> > Fixes: bf87bb0881d0 ("arm64: Allow booting of late CPUs affected by erratum 1418040") > Signed-off-by: Marc Zyngier <maz@kernel.org> > --- > arch/arm64/kernel/cpu_errata.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c > index c332d49780dc..560ba69e13c1 100644 > --- a/arch/arm64/kernel/cpu_errata.c > +++ b/arch/arm64/kernel/cpu_errata.c > @@ -910,8 +910,12 @@ const struct arm64_cpu_capabilities arm64_errata[] = { > .desc = "ARM erratum 1418040", > .capability = ARM64_WORKAROUND_1418040, > ERRATA_MIDR_RANGE_LIST(erratum_1418040_list), > - .type = (ARM64_CPUCAP_SCOPE_LOCAL_CPU | > - ARM64_CPUCAP_PERMITTED_FOR_LATE_CPU), > + /* > + * We need to allow affected CPUs to come in late, but > + * also need the non-affected CPUs to be able to come > + * in at any point in time. Wonderful. > + */ > + .type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE, Acked-by: Will Deacon <will@kernel.org> Will
On Fri, Sep 11, 2020 at 07:16:11PM +0100, Marc Zyngier wrote: > Now that we allow CPUs affected by erratum 1418040 to come in late, > this prevents their unaffected sibblings from coming in late (or > coming back after a suspend or hotplug-off, which amounts to the > same thing). > > To allow this, we need to add ARM64_CPUCAP_OPTIONAL_FOR_LATE_CPU, > which amounts to set .type to ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE. > > Reported-by: Doug Anderson <dianders@google.com> > Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> > Fixes: bf87bb0881d0 ("arm64: Allow booting of late CPUs affected by erratum 1418040") > Signed-off-by: Marc Zyngier <maz@kernel.org> Tested-by: Matthias Kaehlcke <mka@chromium.org> And I guess I deserve brownie points for having found the problem initially and identified the offending commit, even though it was Doug who reported it to the list :) Reported-by: Matthias Kaehlcke <mka@chromium.org>
Hi, On Fri, Sep 11, 2020 at 11:59 AM Matthias Kaehlcke <mka@chromium.org> wrote: > > On Fri, Sep 11, 2020 at 07:16:11PM +0100, Marc Zyngier wrote: > > Now that we allow CPUs affected by erratum 1418040 to come in late, > > this prevents their unaffected sibblings from coming in late (or > > coming back after a suspend or hotplug-off, which amounts to the > > same thing). > > > > To allow this, we need to add ARM64_CPUCAP_OPTIONAL_FOR_LATE_CPU, > > which amounts to set .type to ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE. > > > > Reported-by: Doug Anderson <dianders@google.com> > > Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> > > Fixes: bf87bb0881d0 ("arm64: Allow booting of late CPUs affected by erratum 1418040") > > Signed-off-by: Marc Zyngier <maz@kernel.org> > > Tested-by: Matthias Kaehlcke <mka@chromium.org> > > And I guess I deserve brownie points for having found the problem > initially and identified the offending commit, even though it was > Doug who reported it to the list :) > > Reported-by: Matthias Kaehlcke <mka@chromium.org> LOL, I was just thinking that. Feel free to just use Matthias's Reported-by and leave mine off. I don't think my contributions here are enough to warrant a tag. ;-) -Doug
diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c index c332d49780dc..560ba69e13c1 100644 --- a/arch/arm64/kernel/cpu_errata.c +++ b/arch/arm64/kernel/cpu_errata.c @@ -910,8 +910,12 @@ const struct arm64_cpu_capabilities arm64_errata[] = { .desc = "ARM erratum 1418040", .capability = ARM64_WORKAROUND_1418040, ERRATA_MIDR_RANGE_LIST(erratum_1418040_list), - .type = (ARM64_CPUCAP_SCOPE_LOCAL_CPU | - ARM64_CPUCAP_PERMITTED_FOR_LATE_CPU), + /* + * We need to allow affected CPUs to come in late, but + * also need the non-affected CPUs to be able to come + * in at any point in time. Wonderful. + */ + .type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE, }, #endif #ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT