Mian Yousaf Kaukab 70e7f9
From: Arnd Bergmann <arnd@arndb.de>
Mian Yousaf Kaukab 70e7f9
Date: Mon, 26 Oct 2020 20:37:46 +0100
Mian Yousaf Kaukab 70e7f9
Subject: arm64: avoid -Woverride-init warning
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
Git-commit: 332576e69a046b9b33f49bd0c3c071cc98215b60
Mian Yousaf Kaukab 70e7f9
Patch-mainline: v5.10-rc2
Mian Yousaf Kaukab 70e7f9
References: git-fixes
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
The icache_policy_str[] definition causes a warning when extra
Mian Yousaf Kaukab 70e7f9
warning flags are enabled:
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:38:26: warning: initialized field overwritten [-Woverride-init]
Mian Yousaf Kaukab 70e7f9
   38 |  [ICACHE_POLICY_VIPT]  = "VIPT",
Mian Yousaf Kaukab 70e7f9
      |                          ^~~~~~
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:38:26: note: (near initialization for 'icache_policy_str[2]')
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:39:26: warning: initialized field overwritten [-Woverride-init]
Mian Yousaf Kaukab 70e7f9
   39 |  [ICACHE_POLICY_PIPT]  = "PIPT",
Mian Yousaf Kaukab 70e7f9
      |                          ^~~~~~
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:39:26: note: (near initialization for 'icache_policy_str[3]')
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:40:27: warning: initialized field overwritten [-Woverride-init]
Mian Yousaf Kaukab 70e7f9
   40 |  [ICACHE_POLICY_VPIPT]  = "VPIPT",
Mian Yousaf Kaukab 70e7f9
      |                           ^~~~~~~
Mian Yousaf Kaukab 70e7f9
arch/arm64/kernel/cpuinfo.c:40:27: note: (near initialization for 'icache_policy_str[0]')
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
There is no real need for the default initializer here, as printing a
Mian Yousaf Kaukab 70e7f9
NULL string is harmless. Rewrite the logic to have an explicit
Mian Yousaf Kaukab 70e7f9
reserved value for the only one that uses the default value.
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
This partially reverts the commit that removed ICACHE_POLICY_AIVIVT.
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
Fixes: 155433cb365e ("arm64: cache: Remove support for ASID-tagged VIVT I-caches")
Mian Yousaf Kaukab 70e7f9
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Mian Yousaf Kaukab 70e7f9
Link: https://lore.kernel.org/r/20201026193807.3816388-1-arnd@kernel.org
Mian Yousaf Kaukab 70e7f9
Signed-off-by: Will Deacon <will@kernel.org>
Mian Yousaf Kaukab 70e7f9
Signed-off-by: Mian Yousaf Kaukab <ykaukab@suse.de>
Mian Yousaf Kaukab 70e7f9
---
Mian Yousaf Kaukab 70e7f9
 arch/arm64/include/asm/cache.h |    1 +
Mian Yousaf Kaukab 70e7f9
 arch/arm64/kernel/cpuinfo.c    |    8 ++++----
Mian Yousaf Kaukab 70e7f9
 2 files changed, 5 insertions(+), 4 deletions(-)
Mian Yousaf Kaukab 70e7f9
Mian Yousaf Kaukab 70e7f9
--- a/arch/arm64/include/asm/cache.h
Mian Yousaf Kaukab 70e7f9
+++ b/arch/arm64/include/asm/cache.h
Mian Yousaf Kaukab 70e7f9
@@ -24,6 +24,7 @@
Mian Yousaf Kaukab 70e7f9
 #define CTR_L1IP(ctr)		(((ctr) >> CTR_L1IP_SHIFT) & CTR_L1IP_MASK)
Mian Yousaf Kaukab 70e7f9
 
Mian Yousaf Kaukab 70e7f9
 #define ICACHE_POLICY_VPIPT	0
Mian Yousaf Kaukab 70e7f9
+#define ICACHE_POLICY_RESERVED	1
Mian Yousaf Kaukab 70e7f9
 #define ICACHE_POLICY_VIPT	2
Mian Yousaf Kaukab 70e7f9
 #define ICACHE_POLICY_PIPT	3
Mian Yousaf Kaukab 70e7f9
 
Mian Yousaf Kaukab 70e7f9
--- a/arch/arm64/kernel/cpuinfo.c
Mian Yousaf Kaukab 70e7f9
+++ b/arch/arm64/kernel/cpuinfo.c
Mian Yousaf Kaukab 70e7f9
@@ -34,10 +34,10 @@ DEFINE_PER_CPU(struct cpuinfo_arm64, cpu
Mian Yousaf Kaukab 70e7f9
 static struct cpuinfo_arm64 boot_cpu_data;
Mian Yousaf Kaukab 70e7f9
 
Mian Yousaf Kaukab 70e7f9
 static char *icache_policy_str[] = {
Mian Yousaf Kaukab 70e7f9
-	[0 ... ICACHE_POLICY_PIPT]	= "RESERVED/UNKNOWN",
Mian Yousaf Kaukab 70e7f9
+	[ICACHE_POLICY_VPIPT]		= "VPIPT",
Mian Yousaf Kaukab 70e7f9
+	[ICACHE_POLICY_RESERVED]	= "RESERVED/UNKNOWN",
Mian Yousaf Kaukab 70e7f9
 	[ICACHE_POLICY_VIPT]		= "VIPT",
Mian Yousaf Kaukab 70e7f9
 	[ICACHE_POLICY_PIPT]		= "PIPT",
Mian Yousaf Kaukab 70e7f9
-	[ICACHE_POLICY_VPIPT]		= "VPIPT",
Mian Yousaf Kaukab 70e7f9
 };
Mian Yousaf Kaukab 70e7f9
 
Mian Yousaf Kaukab 70e7f9
 unsigned long __icache_flags;
Mian Yousaf Kaukab 70e7f9
@@ -314,11 +314,11 @@ static void cpuinfo_detect_icache_policy
Mian Yousaf Kaukab 70e7f9
 	case ICACHE_POLICY_VPIPT:
Mian Yousaf Kaukab 70e7f9
 		set_bit(ICACHEF_VPIPT, &__icache_flags);
Mian Yousaf Kaukab 70e7f9
 		break;
Mian Yousaf Kaukab 70e7f9
-	default:
Mian Yousaf Kaukab 70e7f9
-		/* Fallthrough */
Mian Yousaf Kaukab 70e7f9
+	case ICACHE_POLICY_RESERVED:
Mian Yousaf Kaukab 70e7f9
 	case ICACHE_POLICY_VIPT:
Mian Yousaf Kaukab 70e7f9
 		/* Assume aliasing */
Mian Yousaf Kaukab 70e7f9
 		set_bit(ICACHEF_ALIASING, &__icache_flags);
Mian Yousaf Kaukab 70e7f9
+		break;
Mian Yousaf Kaukab 70e7f9
 	}
Mian Yousaf Kaukab 70e7f9
 
Mian Yousaf Kaukab 70e7f9
 	pr_info("Detected %s I-cache on CPU%d\n", icache_policy_str[l1ip], cpu);