diff mbox series

[v2] arm64: cpufeature: Remove cpu_has_fwb() check

Message ID 20220224164739.119168-1-vladimir.murzin@arm.com (mailing list archive)
State New, archived
Headers show
Series [v2] arm64: cpufeature: Remove cpu_has_fwb() check | expand

Commit Message

Vladimir Murzin Feb. 24, 2022, 4:47 p.m. UTC
cpu_has_fwb() is supposed to warn user is following architectural
requirement is not valid:

LoUU, bits [29:27] - Level of Unification Uniprocessor for the cache
                     hierarchy.

  Note

    When FEAT_S2FWB is implemented, the architecture requires that
    this field is zero so that no levels of data cache need to be
    cleaned in order to manage coherency with instruction fetches.

LoUIS, bits [23:21] - Level of Unification Inner Shareable for the
                      cache hierarchy.

  Note

    When FEAT_S2FWB is implemented, the architecture requires that
    this field is zero so that no levels of data cache need to be
    cleaned in order to manage coherency with instruction fetches.

It is not really clear what user have to do if assertion fires. Having
assertions about the CPU design like this inspire even more assertions
to be added and the kernel definitely is not the right place for that,
so let's remove cpu_has_fwb() altogether.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---

Changelog:

 v1 -> v2
    - It looks like v1 did not come through, so increment version to
      avoid confusion in case v1 will show up eventually 

 arch/arm64/kernel/cpufeature.c | 9 ---------
 1 file changed, 9 deletions(-)

Comments

Will Deacon Feb. 25, 2022, 3:50 p.m. UTC | #1
On Thu, 24 Feb 2022 16:47:39 +0000, Vladimir Murzin wrote:
> cpu_has_fwb() is supposed to warn user is following architectural
> requirement is not valid:
> 
> LoUU, bits [29:27] - Level of Unification Uniprocessor for the cache
>                      hierarchy.
> 
>   Note
> 
> [...]

Applied to arm64 (for-next/misc), thanks!

[1/1] arm64: cpufeature: Remove cpu_has_fwb() check
      https://git.kernel.org/arm64/c/032e6c33790d

Cheers,
diff mbox series

Patch

diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index e5f23da..6d1da35 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -1775,14 +1775,6 @@  static void cpu_copy_el2regs(const struct arm64_cpu_capabilities *__unused)
 		write_sysreg(read_sysreg(tpidr_el1), tpidr_el2);
 }
 
-static void cpu_has_fwb(const struct arm64_cpu_capabilities *__unused)
-{
-	u64 val = read_sysreg_s(SYS_CLIDR_EL1);
-
-	/* Check that CLIDR_EL1.LOU{U,IS} are both 0 */
-	WARN_ON(CLIDR_LOUU(val) || CLIDR_LOUIS(val));
-}
-
 #ifdef CONFIG_ARM64_PAN
 static void cpu_enable_pan(const struct arm64_cpu_capabilities *__unused)
 {
@@ -2144,7 +2136,6 @@  static const struct arm64_cpu_capabilities arm64_features[] = {
 		.field_pos = ID_AA64MMFR2_FWB_SHIFT,
 		.min_field_value = 1,
 		.matches = has_cpuid_feature,
-		.cpu_enable = cpu_has_fwb,
 	},
 	{
 		.desc = "ARMv8.4 Translation Table Level",