Subject: Re: linux-next: manual merge of the tip tree with the vfs tree

From: Reinette Chatre <[email-masked]>
Date: Thu, 21 Jun 2018 23:13:32 -0700

All,

On 6/21/2018 6:53 PM, Stephen Rothwell wrote:
> Today's linux-next merge of the tip tree got a conflict in:
> 
>   arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
> 
> between commit:
> 
>   58e4e43911f8 ("kernfs, sysfs, cgroup, intel_rdt: Support fs_context")
> 
> from the vfs tree and commit:
> 
>   a3dbd01e6c9d ("x86/intel_rdt: Create character device exposing pseudo-loc=
> ked region")
> 
> from the tip tree.
> 
> I fixed it up (I think - 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.
> 
> --
> Cheers,
> Stephen Rothwell
> 
> diff --cc arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
> index 38a54f56ff40,7b4a09d81a30..000000000000
> --- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
> +++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
> @@@ -1270,9 -1861,16 +1842,15 @@@ static int rdt_get_tree(struct fs_conte
>   		rdtgroup_default.mon.mon_data_kn = kn_mondata;
>   	}
>  
> + 	ret = rdt_pseudo_lock_init();
> + 	if (ret) {
> + 		dentry = ERR_PTR(ret);
> + 		goto out_mondata;
> + 	}
> +
>  -	dentry = kernfs_mount(fs_type, flags, rdt_root,
>  -			      RDTGROUP_SUPER_MAGIC, NULL);
>  -	if (IS_ERR(dentry))
>  +	ret = kernfs_get_tree(fc);
>  +	if (ret < 0)
> - 		goto out_mondata;
> + 		goto out_psl;
>  
>   	if (rdt_alloc_capable)
>   		static_branch_enable_cpuslocked(&rdt_alloc_enable_key);

>> + 	ret = rdt_pseudo_lock_init();
>> + 	if (ret) {
>> + 		dentry = ERR_PTR(ret);
>
> Actually I have removed the above line as well.

I am the contributor of the pseudo-locking related code that caused the
conflict.

Stephen, thank you very much for proceeding with the merge and fixing it
up. I copied your later fix addition to this email and combined they
look good. I did some basic smoke testing of the merged code and it works.

Thomas and David, please let me know what I can do from my side to help
with this.

As summary, with the above changes combined the merge can be done using:

->8-
diff --cc arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
index 7b4a09d81a30,38a54f56ff40..caa2754f8948
--- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
+++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
@@@ -1861,16 -1270,9 +1842,13 @@@ static int rdt_get_tree(struct fs_conte
  		rdtgroup_default.mon.mon_data_kn = kn_mondata;
  	}

 +	ret = rdt_pseudo_lock_init();
- 	if (ret) {
- 		dentry = ERR_PTR(ret);
++	if (ret)
 +		goto out_mondata;
- 	}
 +
- 	dentry = kernfs_mount(fs_type, flags, rdt_root,
- 			      RDTGROUP_SUPER_MAGIC, NULL);
- 	if (IS_ERR(dentry))
+ 	ret = kernfs_get_tree(fc);
+ 	if (ret < 0)
 -		goto out_mondata;
 +		goto out_psl;

  	if (rdt_alloc_capable)
  		static_branch_enable_cpuslocked(&rdt_alloc_enable_key);

Reinette