diff mbox series

[v2] arm64: cpufeature: Enable Qualcomm Falkor/Kryo errata 1003

Message ID 20191029171539.1374553-1-bjorn.andersson@linaro.org (mailing list archive)
State Mainlined
Commit d4af3c4b81f4cd5662baa6f1492f998d89783318
Headers show
Series [v2] arm64: cpufeature: Enable Qualcomm Falkor/Kryo errata 1003 | expand

Commit Message

Bjorn Andersson Oct. 29, 2019, 5:15 p.m. UTC
With the introduction of 'cce360b54ce6 ("arm64: capabilities: Filter the
entries based on a given mask")' the Qualcomm Falkor/Kryo errata 1003 is
no long applied.

The result of not applying errata 1003 is that MSM8996 runs into various
RCU stalls and fails to boot most of the times.

Give 1003 a "type" to ensure they are not filtered out in
update_cpu_capabilities().

Fixes: cce360b54ce6 ("arm64: capabilities: Filter the entries based on a given mask")
Cc: stable@vger.kernel.org
Reported-by: Mark Brown <broonie@kernel.org>
Suggested-by: Will Deacon <will@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---

Changes since v1:
- s/ARM64_CPUCAP_SCOPE_LOCAL_CPU/ARM64_CPUCAP_LOCAL_CPU_ERRATUM/
- Dropped 1009 "fix" as it already had a type from ERRATA_MIDR_RANGE_LIST()

 arch/arm64/kernel/cpu_errata.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Will Deacon Oct. 29, 2019, 5:39 p.m. UTC | #1
On Tue, Oct 29, 2019 at 10:15:39AM -0700, Bjorn Andersson wrote:
> With the introduction of 'cce360b54ce6 ("arm64: capabilities: Filter the
> entries based on a given mask")' the Qualcomm Falkor/Kryo errata 1003 is
> no long applied.
> 
> The result of not applying errata 1003 is that MSM8996 runs into various
> RCU stalls and fails to boot most of the times.
> 
> Give 1003 a "type" to ensure they are not filtered out in
> update_cpu_capabilities().
> 
> Fixes: cce360b54ce6 ("arm64: capabilities: Filter the entries based on a given mask")
> Cc: stable@vger.kernel.org
> Reported-by: Mark Brown <broonie@kernel.org>
> Suggested-by: Will Deacon <will@kernel.org>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> ---
> 
> Changes since v1:
> - s/ARM64_CPUCAP_SCOPE_LOCAL_CPU/ARM64_CPUCAP_LOCAL_CPU_ERRATUM/
> - Dropped 1009 "fix" as it already had a type from ERRATA_MIDR_RANGE_LIST()
> 
>  arch/arm64/kernel/cpu_errata.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
> index df9465120e2f..3facd5ca52ed 100644
> --- a/arch/arm64/kernel/cpu_errata.c
> +++ b/arch/arm64/kernel/cpu_errata.c
> @@ -780,6 +780,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
>  	{
>  		.desc = "Qualcomm Technologies Falkor/Kryo erratum 1003",
>  		.capability = ARM64_WORKAROUND_QCOM_FALKOR_E1003,
> +		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
>  		.matches = cpucap_multi_entry_cap_matches,
>  		.match_list = qcom_erratum_1003_list,
>  	},
> -- 
> 2.23.0

Thanks, I'll pick this up as a fix.

Will
Bjorn Andersson Oct. 29, 2019, 5:41 p.m. UTC | #2
On Tue 29 Oct 10:39 PDT 2019, Will Deacon wrote:

> On Tue, Oct 29, 2019 at 10:15:39AM -0700, Bjorn Andersson wrote:
> > With the introduction of 'cce360b54ce6 ("arm64: capabilities: Filter the
> > entries based on a given mask")' the Qualcomm Falkor/Kryo errata 1003 is
> > no long applied.
> > 
> > The result of not applying errata 1003 is that MSM8996 runs into various
> > RCU stalls and fails to boot most of the times.
> > 
> > Give 1003 a "type" to ensure they are not filtered out in
> > update_cpu_capabilities().
> > 
> > Fixes: cce360b54ce6 ("arm64: capabilities: Filter the entries based on a given mask")
> > Cc: stable@vger.kernel.org
> > Reported-by: Mark Brown <broonie@kernel.org>
> > Suggested-by: Will Deacon <will@kernel.org>
> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> > ---
> > 
> > Changes since v1:
> > - s/ARM64_CPUCAP_SCOPE_LOCAL_CPU/ARM64_CPUCAP_LOCAL_CPU_ERRATUM/
> > - Dropped 1009 "fix" as it already had a type from ERRATA_MIDR_RANGE_LIST()
> > 
> >  arch/arm64/kernel/cpu_errata.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
> > index df9465120e2f..3facd5ca52ed 100644
> > --- a/arch/arm64/kernel/cpu_errata.c
> > +++ b/arch/arm64/kernel/cpu_errata.c
> > @@ -780,6 +780,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
> >  	{
> >  		.desc = "Qualcomm Technologies Falkor/Kryo erratum 1003",
> >  		.capability = ARM64_WORKAROUND_QCOM_FALKOR_E1003,
> > +		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
> >  		.matches = cpucap_multi_entry_cap_matches,
> >  		.match_list = qcom_erratum_1003_list,
> >  	},
> > -- 
> > 2.23.0
> 
> Thanks, I'll pick this up as a fix.
> 

Thank you!
Sasha Levin Oct. 30, 2019, 9:54 p.m. UTC | #3
Hi,

[This is an automated email]

This commit has been processed because it contains a "Fixes:" tag,
fixing commit: cce360b54ce6c arm64: capabilities: Filter the entries based on a given mask.

The bot has tested the following trees: v5.3.8, v4.19.81, v4.14.151.

v5.3.8: Build OK!
v4.19.81: Failed to apply! Possible dependencies:
    1e013d06120cb ("arm64: cpufeature: Rework ptr auth hwcaps using multi_entry_cap_matches")
    396244692232f ("arm64: preempt: Provide our own implementation of asm/preempt.h")
    5ffdfaedfa0ab ("arm64: mm: Support Common Not Private translations")
    6984eb47d5c1a ("arm64/cpufeature: detect pointer authentication")
    7503197562567 ("arm64: add basic pointer authentication support")
    880f7cc47265e ("arm64: cpu_errata: Remove ARM64_MISMATCHED_CACHE_LINE_SIZE")
    95b861a4a6d94 ("arm64: arch_timer: Add workaround for ARM erratum 1188873")
    a3dcea2c85129 ("arm64: capabilities: Merge duplicate entries for Qualcomm erratum 1003")
    bc84a2d106bea ("Merge branch 'kvm/cortex-a76-erratum-1165522' into aarch64/for-next/core")
    bd4fb6d270bc4 ("arm64: Add support for SB barrier and patch in over DSB; ISB sequences")
    c9460dcb06ee6 ("arm64: capabilities: Merge entries for ARM64_WORKAROUND_CLEAN_CACHE")
    e03a4e5bb7430 ("arm64: Add silicon-errata.txt entry for ARM erratum 1188873")
    f58cdf7e3cab3 ("arm64: capabilities: Merge duplicate Cavium erratum entries")

v4.14.151: Failed to apply! Possible dependencies:
    05abb595bbacc ("arm64: Delay enabling hardware DBM feature")
    12eb369125abe ("arm64: cpufeature: Avoid warnings due to unused symbols")
    1e013d06120cb ("arm64: cpufeature: Rework ptr auth hwcaps using multi_entry_cap_matches")
    1fc5dce78ad15 ("arm64/sve: Low-level SVE architectural state manipulation functions")
    43994d824e844 ("arm64/sve: Detect SVE and activate runtime support")
    611a7bc74ed2d ("arm64: docs: describe ELF hwcaps")
    64c02720ea359 ("arm64: cpufeature: Detect CPU RAS Extentions")
    672365649ccac ("arm64/sve: System register and exception syndrome definitions")
    6ae4b6e057888 ("arm64: Add support for new control bits CTR_EL0.DIC and CTR_EL0.IDC")
    94ef7ecbdf6f7 ("arm64: fpsimd: Correctly annotate exception helpers called from asm")
    a257e02579e42 ("arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum #843419")
    ba7d9233c2199 ("arm64: capabilities: Handle shared entries")
    bc0ee47603647 ("arm64/sve: Core task context handling")
    ca79acca27363 ("arm64/kernel: enable A53 erratum #8434319 handling at runtime")
    ddd25ad1fde84 ("arm64/sve: Kconfig update and conditional compilation support")


NOTE: The patch will not be queued to stable trees until it is upstream.

How should we proceed with this patch?
diff mbox series

Patch

diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
index df9465120e2f..3facd5ca52ed 100644
--- a/arch/arm64/kernel/cpu_errata.c
+++ b/arch/arm64/kernel/cpu_errata.c
@@ -780,6 +780,7 @@  const struct arm64_cpu_capabilities arm64_errata[] = {
 	{
 		.desc = "Qualcomm Technologies Falkor/Kryo erratum 1003",
 		.capability = ARM64_WORKAROUND_QCOM_FALKOR_E1003,
+		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = cpucap_multi_entry_cap_matches,
 		.match_list = qcom_erratum_1003_list,
 	},