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: Michael Ellerman <m...@ellerman.id.au>
Cc: Nicholas Piggin <npig...@gmail.com>
Cc: Christophe Leroy <christophe.le...@csgroup.eu>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
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.

 .../platforms/pseries/pseries_energy.c        | 28 +++++++++++--------
 arch/powerpc/platforms/pseries/suspend.c      | 10 +++++--
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/pseries_energy.c 
b/arch/powerpc/platforms/pseries/pseries_energy.c
index 09e98d301db0..2c661b798235 100644
--- a/arch/powerpc/platforms/pseries/pseries_energy.c
+++ b/arch/powerpc/platforms/pseries/pseries_energy.c
@@ -300,20 +300,22 @@ static struct device_attribute 
attr_percpu_deactivate_hint =
 static int __init pseries_energy_init(void)
 {
        int cpu, err;
-       struct device *cpu_dev;
+       struct device *cpu_dev, *dev_root;
 
        if (!firmware_has_feature(FW_FEATURE_BEST_ENERGY))
                return 0; /* H_BEST_ENERGY hcall not supported */
 
        /* Create the sysfs files */
-       err = device_create_file(cpu_subsys.dev_root,
-                               &attr_cpu_activate_hint_list);
-       if (!err)
-               err = device_create_file(cpu_subsys.dev_root,
-                               &attr_cpu_deactivate_hint_list);
+       dev_root = bus_get_dev_root(&cpu_subsys);
+       if (dev_root) {
+               err = device_create_file(dev_root, 
&attr_cpu_activate_hint_list);
+               if (!err)
+                       err = device_create_file(dev_root, 
&attr_cpu_deactivate_hint_list);
+               put_device(dev_root);
+               if (err)
+                       return err;
+       }
 
-       if (err)
-               return err;
        for_each_possible_cpu(cpu) {
                cpu_dev = get_cpu_device(cpu);
                err = device_create_file(cpu_dev,
@@ -337,14 +339,18 @@ static int __init pseries_energy_init(void)
 static void __exit pseries_energy_cleanup(void)
 {
        int cpu;
-       struct device *cpu_dev;
+       struct device *cpu_dev, *dev_root;
 
        if (!sysfs_entries)
                return;
 
        /* Remove the sysfs files */
-       device_remove_file(cpu_subsys.dev_root, &attr_cpu_activate_hint_list);
-       device_remove_file(cpu_subsys.dev_root, &attr_cpu_deactivate_hint_list);
+       dev_root = bus_get_dev_root(&cpu_subsys);
+       if (dev_root) {
+               device_remove_file(dev_root, &attr_cpu_activate_hint_list);
+               device_remove_file(dev_root, &attr_cpu_deactivate_hint_list);
+               put_device(dev_root);
+       }
 
        for_each_possible_cpu(cpu) {
                cpu_dev = get_cpu_device(cpu);
diff --git a/arch/powerpc/platforms/pseries/suspend.c 
b/arch/powerpc/platforms/pseries/suspend.c
index 1b902cbf85c5..5c43435472cc 100644
--- a/arch/powerpc/platforms/pseries/suspend.c
+++ b/arch/powerpc/platforms/pseries/suspend.c
@@ -143,6 +143,7 @@ static const struct platform_suspend_ops 
pseries_suspend_ops = {
  **/
 static int pseries_suspend_sysfs_register(struct device *dev)
 {
+       struct device *dev_root;
        int rc;
 
        if ((rc = subsys_system_register(&suspend_subsys, NULL)))
@@ -151,8 +152,13 @@ static int pseries_suspend_sysfs_register(struct device 
*dev)
        dev->id = 0;
        dev->bus = &suspend_subsys;
 
-       if ((rc = device_create_file(suspend_subsys.dev_root, 
&dev_attr_hibernate)))
-               goto subsys_unregister;
+       dev_root = bus_get_dev_root(&suspend_subsys);
+       if (dev_root) {
+               rc = device_create_file(dev_root, &dev_attr_hibernate);
+               put_device(dev_root);
+               if (rc)
+                       goto subsys_unregister;
+       }
 
        return 0;
 
-- 
2.39.2

Reply via email to