FAILED: patch "[PATCH] arm64: Handle mismatched cache type" failed to apply to 4.14-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
314d53d297980676011e6fd83dac60db4a01dc70Mon Sep 17 00:00:00 2001
From: Suzuki K Poulose <[email protected]>
Date: Wed, 4 Jul 2018 23:07:46 +0100
Subject: [PATCH] arm64: Handle mismatched cache type
Track mismatches in the cache type register (CTR_EL0), other than the D/I min line sizes and trap user accesses if there are any.
Fixes be68a8aaf925 ("arm64: cpufeature: Fix CTR_EL0 field definitions")
Cc <[email protected]>
Cc Mark Rutland <[email protected]>
Cc Will Deacon <[email protected]>
Cc Catalin Marinas <[email protected]>
Signed-off-by Suzuki K Poulose <[email protected]>
Signed-off-by Will Deacon <[email protected]>
arch/arm64/include/asm/cpucaps.h +2 -1
@@ -49,7 +49,8 @@#define ARM64_HAS_CACHE_DIC 28#define ARM64_HW_DBM 29#define ARM64_SSBD 30 +#define ARM64_MISMATCHED_CACHE_TYPE 31 -#define ARM64_NCAPS 31 +#define ARM64_NCAPS 32#endif /* __ASM_CPUCAPS_H */
arch/arm64/kernel/cpu_errata.c +14 -3
@@ -65,11 +65,15 @@ is_kryo_midr(const struct arm64_cpu_capabilities *entry, int scope) }static bool -has_mismatched_cache_line_size (const struct arm64_cpu_capabilities *entry, -int scope) +has_mismatched_cache_type (const struct arm64_cpu_capabilities *entry, +int scope) {u64 mask =CTR_CACHE_MINLINE_MASK ; +/* Skip matching the min line sizes for cache type check */ +if (entry->capability ==ARM64_MISMATCHED_CACHE_TYPE ) + mask ^= arm64_ftr_reg_ctrel0.strict_mask; +WARN_ON (scope !=SCOPE_LOCAL_CPU ||preemptible ());return (read_cpuid_cachetype () & mask) != (arm64_ftr_reg_ctrel0.sys_val & mask);
@@ -615,7 +619,14 @@ const struct arm64_cpu_capabilities arm64_errata[] = { { .desc = "Mismatched cache line size", .capability = ARM64_MISMATCHED_CACHE_LINE_SIZE, - .matches = has_mismatched_cache_line_size, + .matches = has_mismatched_cache_type, + .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, + .cpu_enable = cpu_enable_trap_ctr_access, + }, + { + .desc = "Mismatched cache type", + .capability = ARM64_MISMATCHED_CACHE_TYPE, + .matches = has_mismatched_cache_type, .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, .cpu_enable = cpu_enable_trap_ctr_access, },