2023-03-13 18:31:34

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 07/36] cpu/hotplug: move to use bus_get_dev_root()

Direct access to the struct bus_type dev_root pointer is going away soon
so replace that with a call to bus_get_dev_root() instead, which is what
it is there for.

Cc: Thomas Gleixner <[email protected]>
Cc: Valentin Schneider <[email protected]>
Cc: Phil Auld <[email protected]>
Cc: Steven Price <[email protected]>
Cc: Juri Lelli <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Vincent Donnefort <[email protected]>
Cc: Kuppuswamy Sathyanarayanan <[email protected]>
Cc: "Jason A. Donenfeld" <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
Note, this is a patch that is a prepatory cleanup as part of a larger
series of patches that is working on resolving some old driver core
design mistakes. It will build and apply cleanly on top of 6.3-rc2 on
its own, but I'd prefer if I could take it through my driver-core tree
so that the driver core changes can be taken through there for 6.4-rc1.

kernel/cpu.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 6c0a92ca6bb5..c59b73d13a3a 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2569,22 +2569,33 @@ static const struct attribute_group cpuhp_smt_attr_group = {

static int __init cpu_smt_sysfs_init(void)
{
- return sysfs_create_group(&cpu_subsys.dev_root->kobj,
- &cpuhp_smt_attr_group);
+ struct device *dev_root;
+ int ret = -ENODEV;
+
+ dev_root = bus_get_dev_root(&cpu_subsys);
+ if (dev_root) {
+ ret = sysfs_create_group(&dev_root->kobj, &cpuhp_smt_attr_group);
+ put_device(dev_root);
+ }
+ return ret;
}

static int __init cpuhp_sysfs_init(void)
{
+ struct device *dev_root;
int cpu, ret;

ret = cpu_smt_sysfs_init();
if (ret)
return ret;

- ret = sysfs_create_group(&cpu_subsys.dev_root->kobj,
- &cpuhp_cpu_root_attr_group);
- if (ret)
- return ret;
+ dev_root = bus_get_dev_root(&cpu_subsys);
+ if (dev_root) {
+ ret = sysfs_create_group(&dev_root->kobj, &cpuhp_cpu_root_attr_group);
+ put_device(dev_root);
+ if (ret)
+ return ret;
+ }

for_each_possible_cpu(cpu) {
struct device *dev = get_cpu_device(cpu);
--
2.39.2



2023-03-20 14:00:12

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 07/36] cpu/hotplug: move to use bus_get_dev_root()

On Mon, Mar 13 2023 at 19:28, Greg Kroah-Hartman wrote:
> Direct access to the struct bus_type dev_root pointer is going away soon
> so replace that with a call to bus_get_dev_root() instead, which is what
> it is there for.
>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Valentin Schneider <[email protected]>
> Cc: Phil Auld <[email protected]>
> Cc: Steven Price <[email protected]>
> Cc: Juri Lelli <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Vincent Donnefort <[email protected]>
> Cc: Kuppuswamy Sathyanarayanan <[email protected]>
> Cc: "Jason A. Donenfeld" <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>

Reviewed-by: Thomas Gleixner <[email protected]>

> ---
> Note, this is a patch that is a prepatory cleanup as part of a larger
> series of patches that is working on resolving some old driver core
> design mistakes. It will build and apply cleanly on top of 6.3-rc2 on
> its own, but I'd prefer if I could take it through my driver-core tree
> so that the driver core changes can be taken through there for 6.4-rc1.

No problem.