Subject: linux-next: manual merge of the driver-core tree with the s390 tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 21 Mar 2023 12:34:28 +1100

Hi all,

Today's linux-next merge of the driver-core tree got a conflict in:

  arch/s390/kernel/topology.c

between commit:

  0599331c3da6 ("s390: simplify one-level sysctl registration for topology_ctl_table")

from the s390 tree and commit:

  9493ed19fbc3 ("s390/topology: move to use bus_get_dev_root()")

from the driver-core 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.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/s390/kernel/topology.c
index e5d6a1c25d13,72af753d1bba..000000000000
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@@ -637,14 -637,33 +637,23 @@@ static struct ctl_table topology_ctl_ta
  	{ },
  };
  
 -static struct ctl_table topology_dir_table[] = {
 -	{
 -		.procname	= "s390",
 -		.maxlen		= 0,
 -		.mode		= 0555,
 -		.child		= topology_ctl_table,
 -	},
 -	{ },
 -};
 -
  static int __init topology_init(void)
  {
+ 	struct device *dev_root;
+ 	int rc = 0;
+ 
  	timer_setup(&topology_timer, topology_timer_fn, TIMER_DEFERRABLE);
  	if (MACHINE_HAS_TOPOLOGY)
  		set_topology_timer();
  	else
  		topology_update_polarization_simple();
 -	register_sysctl_table(topology_dir_table);
 +	register_sysctl("s390", topology_ctl_table);
- 	return device_create_file(cpu_subsys.dev_root, &dev_attr_dispatching);
+ 
+ 	dev_root = bus_get_dev_root(&cpu_subsys);
+ 	if (dev_root) {
+ 		rc = device_create_file(dev_root, &dev_attr_dispatching);
+ 		put_device(dev_root);
+ 	}
+ 	return rc;
  }
  device_initcall(topology_init);