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

From: Reinette Chatre
Date: Fri Jun 22 2018 - 02:13:42 EST


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