diff options
author | Dan Williams <dan.j.williams@intel.com> | 2019-11-13 02:00:24 +0100 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2019-11-17 18:17:39 +0100 |
commit | adbb68293fc5950a46e3e22f9dc9c619661194ae (patch) | |
tree | b66c6dd265a1ff3579b8bdd80f34557af141eaf5 /drivers/nvdimm/region_devs.c | |
parent | libnvdimm: Move region attribute group definition (diff) | |
download | linux-adbb68293fc5950a46e3e22f9dc9c619661194ae.tar.xz linux-adbb68293fc5950a46e3e22f9dc9c619661194ae.zip |
libnvdimm: Move nd_device_attribute_group to device_type
A 'struct device_type' instance can carry default attributes for the
device. Use this facility to remove the export of
nd_device_attribute_group and put the responsibility on the core rather
than leaf implementations to define this attribute.
For regions this creates a new nd_region_attribute_groups[] added to the
per-region device-type instances.
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: "Oliver O'Halloran" <oohall@gmail.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Link: https://lore.kernel.org/r/157309901138.1582359.12909354140826530394.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/region_devs.c')
-rw-r--r-- | drivers/nvdimm/region_devs.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c index e89f2eb3678c..710b5111eaa8 100644 --- a/drivers/nvdimm/region_devs.c +++ b/drivers/nvdimm/region_devs.c @@ -763,19 +763,27 @@ struct attribute_group nd_region_attribute_group = { }; EXPORT_SYMBOL_GPL(nd_region_attribute_group); -static struct device_type nd_blk_device_type = { +static const struct attribute_group *nd_region_attribute_groups[] = { + &nd_device_attribute_group, + NULL, +}; + +static const struct device_type nd_blk_device_type = { .name = "nd_blk", .release = nd_region_release, + .groups = nd_region_attribute_groups, }; -static struct device_type nd_pmem_device_type = { +static const struct device_type nd_pmem_device_type = { .name = "nd_pmem", .release = nd_region_release, + .groups = nd_region_attribute_groups, }; -static struct device_type nd_volatile_device_type = { +static const struct device_type nd_volatile_device_type = { .name = "nd_volatile", .release = nd_region_release, + .groups = nd_region_attribute_groups, }; bool is_nd_pmem(struct device *dev) @@ -931,8 +939,8 @@ void nd_region_release_lane(struct nd_region *nd_region, unsigned int lane) EXPORT_SYMBOL(nd_region_release_lane); static struct nd_region *nd_region_create(struct nvdimm_bus *nvdimm_bus, - struct nd_region_desc *ndr_desc, struct device_type *dev_type, - const char *caller) + struct nd_region_desc *ndr_desc, + const struct device_type *dev_type, const char *caller) { struct nd_region *nd_region; struct device *dev; |