lkml.org 
[lkml]   [2021]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/5] libnvdimm: Drop unused device power management support
    On Thu, 10 Jun 2021 15:26:19 -0700
    Dan Williams <dan.j.williams@intel.com> wrote:

    > LIBNVDIMM device objects register sysfs power attributes despite nothing
    > requiring that support. Clean up sysfs remove the power/ attribute
    > group. This requires a device_create() and a device_register() usage to
    > be converted to the device_initialize() + device_add() pattern.
    >
    > Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Trivial comment below. Looks good.

    > ---
    > drivers/nvdimm/bus.c | 45 +++++++++++++++++++++++++++++++++++++--------
    > 1 file changed, 37 insertions(+), 8 deletions(-)
    >
    > diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c
    > index a11821df83b5..e6aa87043a95 100644
    > --- a/drivers/nvdimm/bus.c
    > +++ b/drivers/nvdimm/bus.c
    > @@ -363,8 +363,13 @@ struct nvdimm_bus *nvdimm_bus_register(struct device *parent,
    > nvdimm_bus->dev.groups = nd_desc->attr_groups;
    > nvdimm_bus->dev.bus = &nvdimm_bus_type;
    > nvdimm_bus->dev.of_node = nd_desc->of_node;
    > - dev_set_name(&nvdimm_bus->dev, "ndbus%d", nvdimm_bus->id);
    > - rc = device_register(&nvdimm_bus->dev);
    > + device_initialize(&nvdimm_bus->dev);
    > + device_set_pm_not_required(&nvdimm_bus->dev);
    > + rc = dev_set_name(&nvdimm_bus->dev, "ndbus%d", nvdimm_bus->id);
    > + if (rc)
    > + goto err;

    Maybe mention in patch description that you also now handle errors in
    dev_set_name()?

    > +
    > + rc = device_add(&nvdimm_bus->dev);
    > if (rc) {
    > dev_dbg(&nvdimm_bus->dev, "registration failed: %d\n", rc);
    > goto err;
    > @@ -525,6 +530,7 @@ void __nd_device_register(struct device *dev)
    > set_dev_node(dev, to_nd_region(dev)->numa_node);
    >
    > dev->bus = &nvdimm_bus_type;
    > + device_set_pm_not_required(dev);
    > if (dev->parent) {
    > get_device(dev->parent);
    > if (dev_to_node(dev) == NUMA_NO_NODE)
    > @@ -717,18 +723,41 @@ const struct attribute_group nd_numa_attribute_group = {
    > .is_visible = nd_numa_attr_visible,
    > };
    >
    > +static void ndctl_release(struct device *dev)
    > +{
    > + kfree(dev);
    > +}
    > +
    > int nvdimm_bus_create_ndctl(struct nvdimm_bus *nvdimm_bus)
    > {
    > dev_t devt = MKDEV(nvdimm_bus_major, nvdimm_bus->id);
    > struct device *dev;
    > + int rc;
    >
    > - dev = device_create(nd_class, &nvdimm_bus->dev, devt, nvdimm_bus,
    > - "ndctl%d", nvdimm_bus->id);
    > + dev = kzalloc(sizeof(*dev), GFP_KERNEL);
    > + if (!dev)
    > + return -ENOMEM;
    > + device_initialize(dev);
    > + device_set_pm_not_required(dev);
    > + dev->class = nd_class;
    > + dev->parent = &nvdimm_bus->dev;
    > + dev->devt = devt;
    > + dev->release = ndctl_release;
    > + rc = dev_set_name(dev, "ndctl%d", nvdimm_bus->id);
    > + if (rc)
    > + goto err;
    >
    > - if (IS_ERR(dev))
    > - dev_dbg(&nvdimm_bus->dev, "failed to register ndctl%d: %ld\n",
    > - nvdimm_bus->id, PTR_ERR(dev));
    > - return PTR_ERR_OR_ZERO(dev);
    > + rc = device_add(dev);
    > + if (rc) {
    > + dev_dbg(&nvdimm_bus->dev, "failed to register ndctl%d: %d\n",
    > + nvdimm_bus->id, rc);
    > + goto err;
    > + }
    > + return 0;
    > +
    > +err:
    > + put_device(dev);
    > + return rc;
    > }
    >
    > void nvdimm_bus_destroy_ndctl(struct nvdimm_bus *nvdimm_bus)
    >

    \
     
     \ /
      Last update: 2021-06-11 13:47    [W:3.075 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site