Re: [PATCH] nvdimm: Use kobj_to_dev() API

From: Ira Weiny
Date: Mon Sep 28 2020 - 13:25:06 EST


On Sat, Sep 26, 2020 at 02:54:17PM +0800, Wang Qing wrote:
> Use kobj_to_dev() instead of container_of().
>
> Signed-off-by: Wang Qing <wangqing@xxxxxxxx>

Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>

> ---
> drivers/nvdimm/namespace_devs.c | 2 +-
> drivers/nvdimm/region_devs.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c
> index 6da67f4..1d11ca7
> --- a/drivers/nvdimm/namespace_devs.c
> +++ b/drivers/nvdimm/namespace_devs.c
> @@ -1623,7 +1623,7 @@ static struct attribute *nd_namespace_attributes[] = {
> static umode_t namespace_visible(struct kobject *kobj,
> struct attribute *a, int n)
> {
> - struct device *dev = container_of(kobj, struct device, kobj);
> + struct device *dev = kobj_to_dev(kobj);
>
> if (a == &dev_attr_resource.attr && is_namespace_blk(dev))
> return 0;
> diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c
> index ef23119..92adfaf
> --- a/drivers/nvdimm/region_devs.c
> +++ b/drivers/nvdimm/region_devs.c
> @@ -644,7 +644,7 @@ static struct attribute *nd_region_attributes[] = {
>
> static umode_t region_visible(struct kobject *kobj, struct attribute *a, int n)
> {
> - struct device *dev = container_of(kobj, typeof(*dev), kobj);
> + struct device *dev = kobj_to_dev(kobj);
> struct nd_region *nd_region = to_nd_region(dev);
> struct nd_interleave_set *nd_set = nd_region->nd_set;
> int type = nd_region_to_nstype(nd_region);
> @@ -759,7 +759,7 @@ REGION_MAPPING(31);
>
> static umode_t mapping_visible(struct kobject *kobj, struct attribute *a, int n)
> {
> - struct device *dev = container_of(kobj, struct device, kobj);
> + struct device *dev = kobj_to_dev(kobj);
> struct nd_region *nd_region = to_nd_region(dev);
>
> if (n < nd_region->ndr_mappings)
> --
> 2.7.4
>