Mailing List Archive

linux-next: manual merge of the driver-core tree with the s390 tree
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);
Re: linux-next: manual merge of the driver-core tree with the s390 tree [ In reply to ]
On Tue, Mar 21, 2023 at 12:34:28PM +1100, Stephen Rothwell wrote:
> 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);

Looks correct to me, thanks!

greg k-h