| From ce33f284935e08229046b30635e6aadcbab02b53 Mon Sep 17 00:00:00 2001 |
| From: Arnd Bergmann <arnd@arndb.de> |
| Date: Fri, 16 Feb 2018 16:27:47 +0100 |
| Subject: clk: fix false-positive Wmaybe-uninitialized warning |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| commit ce33f284935e08229046b30635e6aadcbab02b53 upstream. |
| |
| When we build this driver with on x86-32, gcc produces a false-positive warning: |
| |
| drivers/clk/renesas/clk-sh73a0.c: In function 'sh73a0_cpg_clocks_init': |
| drivers/clk/renesas/clk-sh73a0.c:155:10: error: 'parent_name' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
| return clk_register_fixed_factor(NULL, name, parent_name, 0, |
| |
| We can work around that warning by adding a fake initialization, I tried |
| and failed to come up with any better workaround. This is currently one |
| of few remaining warnings for a 4.14.y randconfig build, so it would be |
| good to also have it backported at least to that version. Older versions |
| have more randconfig warnings, so we might not care. |
| |
| I had not noticed this earlier, because one patch in my randconfig test |
| tree removes the '-ffreestanding' option on x86-32, and that avoids |
| the warning. The -ffreestanding flag was originally global but moved |
| into arch/i386 by Andi Kleen in commit 6edfba1b33c7 ("[PATCH] x86_64: |
| Don't define string functions to builtin") as a 'temporary workaround'. |
| |
| Like many temporary hacks, this turned out to be rather long-lived, from |
| all I can tell we still need a simple fix to asm/string_32.h before it |
| can be removed, but I'm not sure about how to best do that. |
| |
| Cc: stable@vger.kernel.org |
| Cc: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| Signed-off-by: Stephen Boyd <sboyd@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/clk/renesas/clk-sh73a0.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/clk/renesas/clk-sh73a0.c |
| +++ b/drivers/clk/renesas/clk-sh73a0.c |
| @@ -46,7 +46,7 @@ struct div4_clk { |
| unsigned int shift; |
| }; |
| |
| -static struct div4_clk div4_clks[] = { |
| +static const struct div4_clk div4_clks[] = { |
| { "zg", "pll0", CPG_FRQCRA, 16 }, |
| { "m3", "pll1", CPG_FRQCRA, 12 }, |
| { "b", "pll1", CPG_FRQCRA, 8 }, |
| @@ -79,7 +79,7 @@ sh73a0_cpg_register_clock(struct device_ |
| { |
| const struct clk_div_table *table = NULL; |
| unsigned int shift, reg, width; |
| - const char *parent_name; |
| + const char *parent_name = NULL; |
| unsigned int mult = 1; |
| unsigned int div = 1; |
| |
| @@ -135,7 +135,7 @@ sh73a0_cpg_register_clock(struct device_ |
| shift = 24; |
| width = 5; |
| } else { |
| - struct div4_clk *c; |
| + const struct div4_clk *c; |
| |
| for (c = div4_clks; c->name; c++) { |
| if (!strcmp(name, c->name)) { |