On Tue, Aug 06, 2019 at 03:34:34PM -0400, Qian Cai wrote: > diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c > index 876055e37352..a0c495a3f4fd 100644 > --- a/arch/arm64/kernel/cpuinfo.c > +++ b/arch/arm64/kernel/cpuinfo.c > @@ -34,10 +34,7 @@ DEFINE_PER_CPU(struct cpuinfo_arm64, cpu_data); > static struct cpuinfo_arm64 boot_cpu_data; > > static char *icache_policy_str[] = { > - [0 ... ICACHE_POLICY_PIPT] = "RESERVED/UNKNOWN", > - [ICACHE_POLICY_VIPT] = "VIPT", > - [ICACHE_POLICY_PIPT] = "PIPT", > - [ICACHE_POLICY_VPIPT] = "VPIPT", > + [0 ... ICACHE_POLICY_PIPT] = "RESERVED/UNKNOWN" > }; > > unsigned long __icache_flags; > @@ -310,13 +307,16 @@ static void cpuinfo_detect_icache_policy(struct > cpuinfo_arm64 *info) > > switch (l1ip) { > case ICACHE_POLICY_PIPT: > + icache_policy_str[ICACHE_POLICY_PIPT] = "PIPT"; > break; > case ICACHE_POLICY_VPIPT: > + icache_policy_str[ICACHE_POLICY_VPIPT] = "VPIPT"; > set_bit(ICACHEF_VPIPT, &__icache_flags); > break; > default: > /* Fallthrough */ > case ICACHE_POLICY_VIPT: > + icache_policy_str[ICACHE_POLICY_VIPT] = "VIPT"; > /* Assume aliasing */ > set_bit(ICACHEF_ALIASING, &__icache_flags);
I still think this is worse than the code in mainline. I don't think -Woverride-init should warn when overriding a field from a GCC range designated initialiser, since it makes them considerably less useful imo. Will