Messages in this thread | | | Date | Wed, 7 Aug 2019 12:59:27 +0100 | From | Will Deacon <> | Subject | Re: [PATCH v2] arm64/cache: fix -Woverride-init compiler warnings |
| |
On Wed, Aug 07, 2019 at 07:50:43AM -0400, Qian Cai wrote: > > > > On Aug 7, 2019, at 6:56 AM, Will Deacon <will@kernel.org> wrote: > > > > 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. > > Unfortunately, compiler people are moving into a different direction as > Clang would warn those kind of usage too. > > It actually prove that those warnings are useful to find real issues. See, > > Fae5e033d65a (“mfd: rk808: Fix RK818_IRQ_DISCHG_ILIM initializer”) > 32df34d875bb (“[media] rc: img-ir: jvc: Remove unused no-leader timings”) > > Especially, to find redundant initializations in large structures. e.g., > > e6ea0b917875 (“[media] dvb_frontend: Don't declare values twice at a table”)
None of these appear to use the range initialisers I was referring to, so I don't see why this is relevant to the discussion at hand.
Will
| |