Subject: [PATCH-next] init/main.c: make local symbol static

Fixes the following sparse warning:

init/main.c:167:12: warning:
symbol 'envp_init' was not declared. Should it be static?

Signed-off-by: Christopher Díaz Riveros <[email protected]>
---
init/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/init/main.c b/init/main.c
index a8100b954839..ae86addb306c 100644
--- a/init/main.c
+++ b/init/main.c
@@ -164,7 +164,7 @@ static int __init set_reset_devices(char *str)
__setup("reset_devices", set_reset_devices);

static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
-const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
+static const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
static const char *panic_later, *panic_param;

extern const struct obs_kernel_param __setup_start[], __setup_end[];
--
2.15.1



2018-01-18 22:11:20

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH-next] init/main.c: make local symbol static

On 01/18/2018 02:06 PM, Christopher Díaz Riveros wrote:
> Fixes the following sparse warning:
>
> init/main.c:167:12: warning:
> symbol 'envp_init' was not declared. Should it be static?
>
> Signed-off-by: Christopher Díaz Riveros <[email protected]>

Does the kernel build OK after this change?

What about the other user(s) of envp_init?


> ---
> init/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/init/main.c b/init/main.c
> index a8100b954839..ae86addb306c 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -164,7 +164,7 @@ static int __init set_reset_devices(char *str)
> __setup("reset_devices", set_reset_devices);
>
> static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
> -const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
> +static const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
> static const char *panic_later, *panic_param;
>
> extern const struct obs_kernel_param __setup_start[], __setup_end[];
>


--
~Randy

2018-01-18 22:33:09

by Tom Lendacky

[permalink] [raw]
Subject: Re: [PATCH-next] init/main.c: make local symbol static

On 1/18/2018 4:09 PM, Randy Dunlap wrote:
> On 01/18/2018 02:06 PM, Christopher Díaz Riveros wrote:
>> Fixes the following sparse warning:
>>
>> init/main.c:167:12: warning:
>> symbol 'envp_init' was not declared. Should it be static?
>>
>> Signed-off-by: Christopher Díaz Riveros <[email protected]>
>
> Does the kernel build OK after this change?
>
> What about the other user(s) of envp_init?

It looks like it's referenced in init/do_mounts_initrd.c. Rather
than making it static, it should be declared in .h file.

Thanks,
Tom

>
>
>> ---
>> init/main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/init/main.c b/init/main.c
>> index a8100b954839..ae86addb306c 100644
>> --- a/init/main.c
>> +++ b/init/main.c
>> @@ -164,7 +164,7 @@ static int __init set_reset_devices(char *str)
>> __setup("reset_devices", set_reset_devices);
>>
>> static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
>> -const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
>> +static const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
>> static const char *panic_later, *panic_param;
>>
>> extern const struct obs_kernel_param __setup_start[], __setup_end[];
>>
>
>

Subject: Re: [PATCH-next] init/main.c: make local symbol static

El jue, 18-01-2018 a las 16:31 -0600, Tom Lendacky escribió:
> On 1/18/2018 4:09 PM, Randy Dunlap wrote:
> > On 01/18/2018 02:06 PM, Christopher Díaz Riveros wrote:
> > > Fixes the following sparse warning:
> > >
> > > init/main.c:167:12: warning:
> > > symbol 'envp_init' was not declared. Should it be static?
> > >
> > > Signed-off-by: Christopher Díaz Riveros <[email protected]>
> >
> > Does the kernel build OK after this change?
> >

I built it a couple of times before sending the patch, now I compiled
it again and everything went ok.

> > What about the other user(s) of envp_init?
>
> It looks like it's referenced in init/do_mounts_initrd.c. Rather
> than making it static, it should be declared in .h file.
>

Ok, I'll try to figure it out, akpm accepted the patch in mm-next but
was dropped because of testing failures. I'm still very new to all of
this process.

> Thanks,
> Tom
>

Thank you both.
> >
> >
> > > ---
> > > init/main.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/init/main.c b/init/main.c
> > > index a8100b954839..ae86addb306c 100644
> > > --- a/init/main.c
> > > +++ b/init/main.c
> > > @@ -164,7 +164,7 @@ static int __init set_reset_devices(char
> > > *str)
> > > __setup("reset_devices", set_reset_devices);
> > >
> > > static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL,
> > > };
> > > -const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/",
> > > "TERM=linux", NULL, };
> > > +static const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/",
> > > "TERM=linux", NULL, };
> > > static const char *panic_later, *panic_param;
> > >
> > > extern const struct obs_kernel_param __setup_start[],
> > > __setup_end[];
> > >
> >
> >
--
Christopher Díaz Riveros
Gentoo Linux Developer
GPG Fingerprint: E517 5ECB 8152 98E4 FEBC 2BAA 4DBB D10F 0FDD 2547

2018-01-18 23:36:21

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH-next] init/main.c: make local symbol static

On 01/18/2018 03:33 PM, Christopher Díaz Riveros wrote:
> El jue, 18-01-2018 a las 16:31 -0600, Tom Lendacky escribió:
>> On 1/18/2018 4:09 PM, Randy Dunlap wrote:
>>> On 01/18/2018 02:06 PM, Christopher Díaz Riveros wrote:
>>>> Fixes the following sparse warning:
>>>>
>>>> init/main.c:167:12: warning:
>>>> symbol 'envp_init' was not declared. Should it be static?
>>>>
>>>> Signed-off-by: Christopher Díaz Riveros <[email protected]>
>>>
>>> Does the kernel build OK after this change?
>>>
>
> I built it a couple of times before sending the patch, now I compiled
> it again and everything went ok.
>
>>> What about the other user(s) of envp_init?
>>
>> It looks like it's referenced in init/do_mounts_initrd.c. Rather
>> than making it static, it should be declared in .h file.
>>

init/Makefile should give you a clue.

>
> Ok, I'll try to figure it out, akpm accepted the patch in mm-next but
> was dropped because of testing failures. I'm still very new to all of
> this process.


--
~Randy

2018-01-19 00:32:40

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH-next] init/main.c: make local symbol static

On Thu, 18 Jan 2018 18:33:27 -0500
Christopher Díaz Riveros <[email protected]> wrote:

> > > What about the other user(s) of envp_init?
> >
> > It looks like it's referenced in init/do_mounts_initrd.c. Rather
> > than making it static, it should be declared in .h file.
> >
>
> Ok, I'll try to figure it out, akpm accepted the patch in mm-next but
> was dropped because of testing failures. I'm still very new to all of
> this process.

Yeah, because do_mounts_initrd.c didn't compile. If you do add it to a
header, use a header local in the init directory. Do not expose
envp_init to the entire kernel.

-- Steve