Message ID | 20180328193307.978-1-malat@debian.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2,01/19] powerpc/powermac: Mark variable x as unused | expand |
Mathieu Malaterre <malat@debian.org> a écrit : > Add gcc attribute unused for two variables. Fix warnings treated as errors > with W=1: > > arch/powerpc/kernel/prom_init.c:1388:8: error: variable ‘path’ set > but not used [-Werror=unused-but-set-variable] > > Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> > Signed-off-by: Mathieu Malaterre <malat@debian.org> > --- > v2: move path within ifdef DEBUG_PROM > > arch/powerpc/kernel/prom_init.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kernel/prom_init.c > b/arch/powerpc/kernel/prom_init.c > index acf4b2e0530c..4163b11abb6c 100644 > --- a/arch/powerpc/kernel/prom_init.c > +++ b/arch/powerpc/kernel/prom_init.c > @@ -603,7 +603,7 @@ static void __init early_cmdline_parse(void) > const char *opt; > > char *p; > - int l = 0; > + int l __maybe_unused = 0; > > prom_cmd_line[0] = 0; > p = prom_cmd_line; > @@ -1385,7 +1385,7 @@ static void __init reserve_mem(u64 base, u64 size) > static void __init prom_init_mem(void) > { > phandle node; > - char *path, type[64]; > + char *path __maybe_unused, type[64]; You should enclose that in an ifdef DEBUG_PROM instead of hiding the warning Christophe > unsigned int plen; > cell_t *p, *endp; > __be32 val; > @@ -1406,7 +1406,6 @@ static void __init prom_init_mem(void) > prom_debug("root_size_cells: %x\n", rsc); > > prom_debug("scanning memory:\n"); > - path = prom_scratch; > > for (node = 0; prom_next_node(&node); ) { > type[0] = 0; > @@ -1431,6 +1430,7 @@ static void __init prom_init_mem(void) > endp = p + (plen / sizeof(cell_t)); > > #ifdef DEBUG_PROM > + path = prom_scratch; > memset(path, 0, PROM_SCRATCH_SIZE); > call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); > prom_debug(" node %s :\n", path); > -- > 2.11.0
LEROY Christophe <christophe.leroy@c-s.fr> writes: > Mathieu Malaterre <malat@debian.org> a écrit : > >> Add gcc attribute unused for two variables. Fix warnings treated as errors >> with W=1: >> >> arch/powerpc/kernel/prom_init.c:1388:8: error: variable ‘path’ set >> but not used [-Werror=unused-but-set-variable] >> >> Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> >> Signed-off-by: Mathieu Malaterre <malat@debian.org> >> --- >> v2: move path within ifdef DEBUG_PROM >> >> arch/powerpc/kernel/prom_init.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/arch/powerpc/kernel/prom_init.c >> b/arch/powerpc/kernel/prom_init.c >> index acf4b2e0530c..4163b11abb6c 100644 >> --- a/arch/powerpc/kernel/prom_init.c >> +++ b/arch/powerpc/kernel/prom_init.c >> @@ -603,7 +603,7 @@ static void __init early_cmdline_parse(void) >> const char *opt; >> >> char *p; >> - int l = 0; >> + int l __maybe_unused = 0; >> >> prom_cmd_line[0] = 0; >> p = prom_cmd_line; >> @@ -1385,7 +1385,7 @@ static void __init reserve_mem(u64 base, u64 size) >> static void __init prom_init_mem(void) >> { >> phandle node; >> - char *path, type[64]; >> + char *path __maybe_unused, type[64]; > > You should enclose that in an ifdef DEBUG_PROM instead of hiding the warning I disagree, the result is horrible: static void __init prom_init_mem(void) { phandle node; - char *path, type[64]; +#ifdef DEBUG_PROM + char *path; +#endif + char type[64]; unsigned int plen; cell_t *p, *endp; __be32 val; The right fix is to move the debug logic into a helper, and put the path in there, eg. something like (not tested): diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index f9d6befb55a6..b02fa2ccc70b 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c @@ -1389,6 +1389,18 @@ static void __init reserve_mem(u64 base, u64 size) mem_reserve_cnt = cnt + 1; } +#ifdef DEBUG_PROM +static void prom_debug_path(phandle node) +{ + char *path; + path = prom_scratch; + memset(path, 0, PROM_SCRATCH_SIZE); + call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); + prom_debug(" node %s :\n", path); +} +#else +static void prom_debug_path(phandle node) { } +#endif /* DEBUG_PROM */ /* * Initialize memory allocation mechanism, parse "memory" nodes and * obtain that way the top of memory and RMO to setup out local allocator @@ -1441,11 +1453,7 @@ static void __init prom_init_mem(void) p = regbuf; endp = p + (plen / sizeof(cell_t)); -#ifdef DEBUG_PROM - memset(path, 0, PROM_SCRATCH_SIZE); - call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); - prom_debug(" node %s :\n", path); -#endif /* DEBUG_PROM */ + prom_debug_path(node); while ((endp - p) >= (rac + rsc)) { unsigned long base, size; Although that also begs the question of why the hell do we need path at all, and not just use prom_scratch directly? cheers
Michael Ellerman <mpe@ellerman.id.au> a écrit : > LEROY Christophe <christophe.leroy@c-s.fr> writes: > >> Mathieu Malaterre <malat@debian.org> a écrit : >> >>> Add gcc attribute unused for two variables. Fix warnings treated as errors >>> with W=1: >>> >>> arch/powerpc/kernel/prom_init.c:1388:8: error: variable ‘path’ set >>> but not used [-Werror=unused-but-set-variable] >>> >>> Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> >>> Signed-off-by: Mathieu Malaterre <malat@debian.org> >>> --- >>> v2: move path within ifdef DEBUG_PROM >>> >>> arch/powerpc/kernel/prom_init.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/arch/powerpc/kernel/prom_init.c >>> b/arch/powerpc/kernel/prom_init.c >>> index acf4b2e0530c..4163b11abb6c 100644 >>> --- a/arch/powerpc/kernel/prom_init.c >>> +++ b/arch/powerpc/kernel/prom_init.c >>> @@ -603,7 +603,7 @@ static void __init early_cmdline_parse(void) >>> const char *opt; >>> >>> char *p; >>> - int l = 0; >>> + int l __maybe_unused = 0; >>> >>> prom_cmd_line[0] = 0; >>> p = prom_cmd_line; >>> @@ -1385,7 +1385,7 @@ static void __init reserve_mem(u64 base, u64 size) >>> static void __init prom_init_mem(void) >>> { >>> phandle node; >>> - char *path, type[64]; >>> + char *path __maybe_unused, type[64]; >> >> You should enclose that in an ifdef DEBUG_PROM instead of hiding the warning > > I disagree, the result is horrible: > > static void __init prom_init_mem(void) > { > phandle node; > - char *path, type[64]; > +#ifdef DEBUG_PROM > + char *path; > +#endif > + char type[64]; > unsigned int plen; > cell_t *p, *endp; > __be32 val; > > > The right fix is to move the debug logic into a helper, and put the path > in there, eg. something like (not tested): > > diff --git a/arch/powerpc/kernel/prom_init.c > b/arch/powerpc/kernel/prom_init.c > index f9d6befb55a6..b02fa2ccc70b 100644 > --- a/arch/powerpc/kernel/prom_init.c > +++ b/arch/powerpc/kernel/prom_init.c > @@ -1389,6 +1389,18 @@ static void __init reserve_mem(u64 base, u64 size) > mem_reserve_cnt = cnt + 1; > } > > +#ifdef DEBUG_PROM > +static void prom_debug_path(phandle node) > +{ > + char *path; > + path = prom_scratch; > + memset(path, 0, PROM_SCRATCH_SIZE); > + call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); > + prom_debug(" node %s :\n", path); > +} > +#else > +static void prom_debug_path(phandle node) { } Or put the ifdef inside the function to avoid double definition ? > +#endif /* DEBUG_PROM */ > /* > * Initialize memory allocation mechanism, parse "memory" nodes and > * obtain that way the top of memory and RMO to setup out local allocator > @@ -1441,11 +1453,7 @@ static void __init prom_init_mem(void) > p = regbuf; > endp = p + (plen / sizeof(cell_t)); > > -#ifdef DEBUG_PROM > - memset(path, 0, PROM_SCRATCH_SIZE); > - call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); > - prom_debug(" node %s :\n", path); > -#endif /* DEBUG_PROM */ > + prom_debug_path(node); > > while ((endp - p) >= (rac + rsc)) { > unsigned long base, size; > > > Although that also begs the question of why the hell do we need path at > all, and not just use prom_scratch directly? Wondering the same, why not use prom_scratch directly Christophe > > cheers
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index acf4b2e0530c..4163b11abb6c 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c @@ -603,7 +603,7 @@ static void __init early_cmdline_parse(void) const char *opt; char *p; - int l = 0; + int l __maybe_unused = 0; prom_cmd_line[0] = 0; p = prom_cmd_line; @@ -1385,7 +1385,7 @@ static void __init reserve_mem(u64 base, u64 size) static void __init prom_init_mem(void) { phandle node; - char *path, type[64]; + char *path __maybe_unused, type[64]; unsigned int plen; cell_t *p, *endp; __be32 val; @@ -1406,7 +1406,6 @@ static void __init prom_init_mem(void) prom_debug("root_size_cells: %x\n", rsc); prom_debug("scanning memory:\n"); - path = prom_scratch; for (node = 0; prom_next_node(&node); ) { type[0] = 0; @@ -1431,6 +1430,7 @@ static void __init prom_init_mem(void) endp = p + (plen / sizeof(cell_t)); #ifdef DEBUG_PROM + path = prom_scratch; memset(path, 0, PROM_SCRATCH_SIZE); call_prom("package-to-path", 3, 1, node, path, PROM_SCRATCH_SIZE-1); prom_debug(" node %s :\n", path);
Add gcc attribute unused for two variables. Fix warnings treated as errors with W=1: arch/powerpc/kernel/prom_init.c:1388:8: error: variable ‘path’ set but not used [-Werror=unused-but-set-variable] Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Mathieu Malaterre <malat@debian.org> --- v2: move path within ifdef DEBUG_PROM arch/powerpc/kernel/prom_init.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)