Re: Fix sparse warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




L. Alberto Giménez schrieb:
> Hi,
> 
> I'm starting to do some cleanup for the project, and I'd like to begin
> fixing sparse errors.
> 
> By the way, at first glance, it seems that the warnings that sparse
> catches may need some depth look (i.e. not a newbiew) not to mess things.
> 
> For example, my first compilation sparse checking throws this:
> 
> 
> init/main.c:763:13: warning: symbol 'call' shadows an earlier one
> init/main.c:710:31: originally declared here
> init/main.c:793:13: warning: symbol 'call' shadows an earlier one
> init/main.c:710:31: originally declared here
> 
> If you take a look at the code, the global "call" variable is defined as:
> 
> static struct boot_trace_call call;
> 
> And what makes sparse whine is a local variable definition, totally
> unrelated (i think):
> 
> static void __init do_initcalls(void)
> {
>     initcall_t *call;
> 
>     for (call = __early_initcall_end; call < __initcall_end; call++)
>         do_one_initcall(*call);
> 
>     /* Make sure there is no pending stuff from the initcall sequence */
>     flush_scheduled_work();
> }
> 
> So, it seems that I could "fix" this by changing the local variable
> name. The question is: is this _really_ needed apart from "code
> hygiene"? Should I "fix" (if you agree to call that "to fix") that issue?
> 
> Or would you otherwise recommend me to start with the official janitor
> TODO list and address more mechanical work at first? Thanks in advance.
> 


Having two variables with the same name is bad practice at least.
But before renaming "initcall_t *call;" (the easy way) you should check
if the global "struct boot_trace_call call;" really really is needed (global is evil).

re,
 wh
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux