All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: <linux-cxl@vger.kernel.org>, <nvdimm@lists.linux.dev>,
	<ben.widawsky@intel.com>, <alison.schofield@intel.com>,
	<vishal.l.verma@intel.com>, <ira.weiny@intel.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/5] libnvdimm: Drop unused device power management support
Date: Fri, 11 Jun 2021 12:47:03 +0100	[thread overview]
Message-ID: <20210611124703.000033af@Huawei.com> (raw)
In-Reply-To: <162336397948.2462439.5230237265829121099.stgit@dwillia2-desk3.amr.corp.intel.com>

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)
> 


  reply	other threads:[~2021-06-11 11:47 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-10 22:25 [PATCH 0/5] cxl/pmem: Add core infrastructure for PMEM support Dan Williams
2021-06-10 22:26 ` [PATCH 1/5] cxl/core: Add cxl-bus driver infrastructure Dan Williams
2021-06-11 17:47   ` Ben Widawsky
2021-06-11 18:55     ` Dan Williams
2021-06-11 19:28       ` Ben Widawsky
2021-06-11 23:25         ` Dan Williams
2021-06-14 21:40           ` Ben Widawsky
2021-06-10 22:26 ` [PATCH 2/5] cxl/pmem: Add initial infrastructure for pmem support Dan Williams
2021-06-11 11:39   ` Jonathan Cameron
2021-06-12  0:07     ` Dan Williams
2021-06-10 22:26 ` [PATCH 3/5] libnvdimm: Export nvdimm shutdown helper, nvdimm_delete() Dan Williams
2021-06-10 22:26 ` [PATCH 4/5] libnvdimm: Drop unused device power management support Dan Williams
2021-06-11 11:47   ` Jonathan Cameron [this message]
2021-06-12  0:16     ` Dan Williams
2021-06-10 22:26 ` [PATCH 5/5] cxl/pmem: Register 'pmem' / cxl_nvdimm devices Dan Williams
2021-06-11 12:57   ` Jonathan Cameron
2021-06-12  0:34     ` Dan Williams
2021-06-11 12:59 ` [PATCH 0/5] cxl/pmem: Add core infrastructure for PMEM support Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210611124703.000033af@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=ben.widawsky@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.