lkml.org 
[lkml]   [2023]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/36] powerpc/pseries: move to use bus_get_dev_root()
    Date
    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 <mpe@ellerman.id.au>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@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
    \
     
     \ /
      Last update: 2023-03-27 00:57    [W:5.817 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site