Subject: Re: linux-next: manual merge of the akpm-current tree with the ftrace tree

From: Masami Hiramatsu <[email-masked]>
Date: Mon, 3 Feb 2020 12:16:45 +0900

Hi,

On Mon, 3 Feb 2020 11:51:32 +1100
Stephen Rothwell <[email-masked]> wrote:

> Hi all,
> 
> On Wed, 15 Jan 2020 16:47:08 +1100 Stephen Rothwell <[email-masked]> wrote:
> >
> > Hi all,
> > 
> > Today's linux-next merge of the akpm-current tree got a conflict in:
> > 
> >   init/main.c
> > 
> > between commit:
> > 
> >   0068c92a9270 ("init/main.c: Alloc initcall_command_line in do_initcall() and free it")
> > 
> > from the ftrace tree and commit:
> > 
> >   21cc5aef9811 ("init/main.c: remove unnecessary repair_env_string in do_initcall_level")
> > 
> > from the akpm-current tree.
> > 
> > I fixed it up (see below) and can carry the fix as necessary. This
> > is now fixed as far as linux-next is concerned, but any non trivial
> > conflicts should be mentioned to your upstream maintainer when your tree
> > is submitted for merging.  You may also want to consider cooperating
> > with the maintainer of the conflicting tree to minimise any particularly
> > complex conflicts.
> > 

Thanks for noticing the conflict and fixing!

> > @@@ -1162,15 -990,22 +1161,21 @@@ static const char *initcall_level_names
> >   	"late",
> >   };
> >   
> > + static int __init ignore_unknown_bootoption(char *param, char *val,
> > + 			       const char *unused, void *arg)
> > + {
> > + 	return 0;
> > + }
> > + 
> >  -static void __init do_initcall_level(int level)
> >  +static void __init do_initcall_level(int level, char *command_line)
> >   {
> >   	initcall_entry_t *fn;
> >   
> >  -	strcpy(initcall_command_line, saved_command_line);
> >   	parse_args(initcall_level_names[level],
> >  -		   initcall_command_line, __start___param,
> >  +		   command_line, __start___param,
> >   		   __stop___param - __start___param,
> >   		   level, level,
> > - 		   NULL, &repair_env_string);
> > + 		   NULL, ignore_unknown_bootoption);
> >   
> >   	trace_initcall_level(initcall_level_names[level]);
> >   	for (fn = initcall_levels[level]; fn < initcall_levels[level+1]; fn++)
> 
> This is now a conflict between the ftrace tree and Linus' tree.

Yeah, this fix looks good to me.

As far as I can see, the issue is below 2 lines.

> >  -static void __init do_initcall_level(int level)
> >  +static void __init do_initcall_level(int level, char *command_line)

Basically, the command_line is copied from saved_command_line each time when
do_initcall_level() is invoked, so the precondition of the commit 21cc5aef9811
("init/main.c: remove unnecessary repair_env_string in do_initcall_level")
remains the same.

Thank you,

-- 
Masami Hiramatsu <[email-masked]>