driver core: cpu: don't hand-override the uevent bus_type callback.

Message ID 20230210102408.1083177-1-gregkh@linuxfoundation.org
State New
Headers
Series driver core: cpu: don't hand-override the uevent bus_type callback. |

Commit Message

Greg KH Feb. 10, 2023, 10:24 a.m. UTC
  Instead of having to change the uevent bus_type callback by hand at
runtime, set it at build time based on the build configuration options,
making this much simpler to maintain and understand (and allow to make
the structure constant.)

Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/base/cpu.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)
  

Comments

Rafael J. Wysocki Feb. 13, 2023, 4:08 p.m. UTC | #1
On Fri, Feb 10, 2023 at 11:24 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> Instead of having to change the uevent bus_type callback by hand at
> runtime, set it at build time based on the build configuration options,
> making this much simpler to maintain and understand (and allow to make
> the structure constant.)
>
> Cc: "Rafael J. Wysocki" <rafael@kernel.org>

LGTM:

Acked-by: Rafael J. Wysocki <rafael@kernel.org>

> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  drivers/base/cpu.c | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
> index 8bb623039bb2..182c6122f815 100644
> --- a/drivers/base/cpu.c
> +++ b/drivers/base/cpu.c
> @@ -125,17 +125,6 @@ static DEVICE_ATTR(release, S_IWUSR, NULL, cpu_release_store);
>  #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */
>  #endif /* CONFIG_HOTPLUG_CPU */
>
> -struct bus_type cpu_subsys = {
> -       .name = "cpu",
> -       .dev_name = "cpu",
> -       .match = cpu_subsys_match,
> -#ifdef CONFIG_HOTPLUG_CPU
> -       .online = cpu_subsys_online,
> -       .offline = cpu_subsys_offline,
> -#endif
> -};
> -EXPORT_SYMBOL_GPL(cpu_subsys);
> -
>  #ifdef CONFIG_KEXEC
>  #include <linux/kexec.h>
>
> @@ -348,6 +337,20 @@ static int cpu_uevent(const struct device *dev, struct kobj_uevent_env *env)
>  }
>  #endif
>
> +struct bus_type cpu_subsys = {
> +       .name = "cpu",
> +       .dev_name = "cpu",
> +       .match = cpu_subsys_match,
> +#ifdef CONFIG_HOTPLUG_CPU
> +       .online = cpu_subsys_online,
> +       .offline = cpu_subsys_offline,
> +#endif
> +#ifdef CONFIG_GENERIC_CPU_AUTOPROBE
> +       .uevent = cpu_uevent,
> +#endif
> +};
> +EXPORT_SYMBOL_GPL(cpu_subsys);
> +
>  /*
>   * register_cpu - Setup a sysfs device for a CPU.
>   * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
> @@ -368,9 +371,6 @@ int register_cpu(struct cpu *cpu, int num)
>         cpu->dev.offline_disabled = !cpu->hotpluggable;
>         cpu->dev.offline = !cpu_online(num);
>         cpu->dev.of_node = of_get_cpu_node(num, NULL);
> -#ifdef CONFIG_GENERIC_CPU_AUTOPROBE
> -       cpu->dev.bus->uevent = cpu_uevent;
> -#endif
>         cpu->dev.groups = common_cpu_attr_groups;
>         if (cpu->hotpluggable)
>                 cpu->dev.groups = hotplugable_cpu_attr_groups;
> --
> 2.39.1
>
  

Patch

diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index 8bb623039bb2..182c6122f815 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -125,17 +125,6 @@  static DEVICE_ATTR(release, S_IWUSR, NULL, cpu_release_store);
 #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */
 #endif /* CONFIG_HOTPLUG_CPU */
 
-struct bus_type cpu_subsys = {
-	.name = "cpu",
-	.dev_name = "cpu",
-	.match = cpu_subsys_match,
-#ifdef CONFIG_HOTPLUG_CPU
-	.online = cpu_subsys_online,
-	.offline = cpu_subsys_offline,
-#endif
-};
-EXPORT_SYMBOL_GPL(cpu_subsys);
-
 #ifdef CONFIG_KEXEC
 #include <linux/kexec.h>
 
@@ -348,6 +337,20 @@  static int cpu_uevent(const struct device *dev, struct kobj_uevent_env *env)
 }
 #endif
 
+struct bus_type cpu_subsys = {
+	.name = "cpu",
+	.dev_name = "cpu",
+	.match = cpu_subsys_match,
+#ifdef CONFIG_HOTPLUG_CPU
+	.online = cpu_subsys_online,
+	.offline = cpu_subsys_offline,
+#endif
+#ifdef CONFIG_GENERIC_CPU_AUTOPROBE
+	.uevent = cpu_uevent,
+#endif
+};
+EXPORT_SYMBOL_GPL(cpu_subsys);
+
 /*
  * register_cpu - Setup a sysfs device for a CPU.
  * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
@@ -368,9 +371,6 @@  int register_cpu(struct cpu *cpu, int num)
 	cpu->dev.offline_disabled = !cpu->hotpluggable;
 	cpu->dev.offline = !cpu_online(num);
 	cpu->dev.of_node = of_get_cpu_node(num, NULL);
-#ifdef CONFIG_GENERIC_CPU_AUTOPROBE
-	cpu->dev.bus->uevent = cpu_uevent;
-#endif
 	cpu->dev.groups = common_cpu_attr_groups;
 	if (cpu->hotpluggable)
 		cpu->dev.groups = hotplugable_cpu_attr_groups;