diff options
Diffstat (limited to 'drivers/nvdimm/namespace_devs.c')
| -rw-r--r-- | drivers/nvdimm/namespace_devs.c | 68 | 
1 files changed, 36 insertions, 32 deletions
diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c index c90664387ee5..05d99a8b3175 100644 --- a/drivers/nvdimm/namespace_devs.c +++ b/drivers/nvdimm/namespace_devs.c @@ -44,35 +44,9 @@ static void namespace_blk_release(struct device *dev)  	kfree(nsblk);  } -static const struct device_type namespace_io_device_type = { -	.name = "nd_namespace_io", -	.release = namespace_io_release, -}; - -static const struct device_type namespace_pmem_device_type = { -	.name = "nd_namespace_pmem", -	.release = namespace_pmem_release, -}; - -static const struct device_type namespace_blk_device_type = { -	.name = "nd_namespace_blk", -	.release = namespace_blk_release, -}; - -static bool is_namespace_pmem(const struct device *dev) -{ -	return dev ? dev->type == &namespace_pmem_device_type : false; -} - -static bool is_namespace_blk(const struct device *dev) -{ -	return dev ? dev->type == &namespace_blk_device_type : false; -} - -static bool is_namespace_io(const struct device *dev) -{ -	return dev ? dev->type == &namespace_io_device_type : false; -} +static bool is_namespace_pmem(const struct device *dev); +static bool is_namespace_blk(const struct device *dev); +static bool is_namespace_io(const struct device *dev);  static int is_uuid_busy(struct device *dev, void *data)  { @@ -1680,6 +1654,39 @@ static const struct attribute_group *nd_namespace_attribute_groups[] = {  	NULL,  }; +static const struct device_type namespace_io_device_type = { +	.name = "nd_namespace_io", +	.release = namespace_io_release, +	.groups = nd_namespace_attribute_groups, +}; + +static const struct device_type namespace_pmem_device_type = { +	.name = "nd_namespace_pmem", +	.release = namespace_pmem_release, +	.groups = nd_namespace_attribute_groups, +}; + +static const struct device_type namespace_blk_device_type = { +	.name = "nd_namespace_blk", +	.release = namespace_blk_release, +	.groups = nd_namespace_attribute_groups, +}; + +static bool is_namespace_pmem(const struct device *dev) +{ +	return dev ? dev->type == &namespace_pmem_device_type : false; +} + +static bool is_namespace_blk(const struct device *dev) +{ +	return dev ? dev->type == &namespace_blk_device_type : false; +} + +static bool is_namespace_io(const struct device *dev) +{ +	return dev ? dev->type == &namespace_io_device_type : false; +} +  struct nd_namespace_common *nvdimm_namespace_common_probe(struct device *dev)  {  	struct nd_btt *nd_btt = is_nd_btt(dev) ? to_nd_btt(dev) : NULL; @@ -2095,7 +2102,6 @@ static struct device *nd_namespace_blk_create(struct nd_region *nd_region)  	}  	dev_set_name(dev, "namespace%d.%d", nd_region->id, nsblk->id);  	dev->parent = &nd_region->dev; -	dev->groups = nd_namespace_attribute_groups;  	return &nsblk->common.dev;  } @@ -2126,7 +2132,6 @@ static struct device *nd_namespace_pmem_create(struct nd_region *nd_region)  		return NULL;  	}  	dev_set_name(dev, "namespace%d.%d", nd_region->id, nspm->id); -	dev->groups = nd_namespace_attribute_groups;  	nd_namespace_pmem_set_resource(nd_region, nspm, 0);  	return dev; @@ -2625,7 +2630,6 @@ int nd_region_register_namespaces(struct nd_region *nd_region, int *err)  		if (id < 0)  			break;  		dev_set_name(dev, "namespace%d.%d", nd_region->id, id); -		dev->groups = nd_namespace_attribute_groups;  		nd_device_register(dev);  	}  	if (i)  | 
