mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 15:03:04 +00:00
nvdimm: make nd_class constant
Now that the driver core allows for struct class to be in read-only memory, it is possible to make all 'class' structures be declared at build time. Move the class to a 'static const' declaration and register it rather than dynamically create it." Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: nvdimm@lists.linux.dev Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Link: https://lore.kernel.org/r/2024061041-grandkid-coherence-19b0@gregkh Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dd6e9894b4
commit
477e36546e
|
@ -25,9 +25,12 @@
|
|||
|
||||
int nvdimm_major;
|
||||
static int nvdimm_bus_major;
|
||||
static struct class *nd_class;
|
||||
static DEFINE_IDA(nd_ida);
|
||||
|
||||
static const struct class nd_class = {
|
||||
.name = "nd",
|
||||
};
|
||||
|
||||
static int to_nd_device_type(const struct device *dev)
|
||||
{
|
||||
if (is_nvdimm(dev))
|
||||
|
@ -742,7 +745,7 @@ int nvdimm_bus_create_ndctl(struct nvdimm_bus *nvdimm_bus)
|
|||
device_initialize(dev);
|
||||
lockdep_set_class(&dev->mutex, &nvdimm_ndctl_key);
|
||||
device_set_pm_not_required(dev);
|
||||
dev->class = nd_class;
|
||||
dev->class = &nd_class;
|
||||
dev->parent = &nvdimm_bus->dev;
|
||||
dev->devt = devt;
|
||||
dev->release = ndctl_release;
|
||||
|
@ -765,7 +768,7 @@ err:
|
|||
|
||||
void nvdimm_bus_destroy_ndctl(struct nvdimm_bus *nvdimm_bus)
|
||||
{
|
||||
device_destroy(nd_class, MKDEV(nvdimm_bus_major, nvdimm_bus->id));
|
||||
device_destroy(&nd_class, MKDEV(nvdimm_bus_major, nvdimm_bus->id));
|
||||
}
|
||||
|
||||
static const struct nd_cmd_desc __nd_cmd_dimm_descs[] = {
|
||||
|
@ -1320,11 +1323,9 @@ int __init nvdimm_bus_init(void)
|
|||
goto err_dimm_chrdev;
|
||||
nvdimm_major = rc;
|
||||
|
||||
nd_class = class_create("nd");
|
||||
if (IS_ERR(nd_class)) {
|
||||
rc = PTR_ERR(nd_class);
|
||||
rc = class_register(&nd_class);
|
||||
if (rc)
|
||||
goto err_class;
|
||||
}
|
||||
|
||||
rc = driver_register(&nd_bus_driver.drv);
|
||||
if (rc)
|
||||
|
@ -1333,7 +1334,7 @@ int __init nvdimm_bus_init(void)
|
|||
return 0;
|
||||
|
||||
err_nd_bus:
|
||||
class_destroy(nd_class);
|
||||
class_unregister(&nd_class);
|
||||
err_class:
|
||||
unregister_chrdev(nvdimm_major, "dimmctl");
|
||||
err_dimm_chrdev:
|
||||
|
@ -1347,7 +1348,7 @@ int __init nvdimm_bus_init(void)
|
|||
void nvdimm_bus_exit(void)
|
||||
{
|
||||
driver_unregister(&nd_bus_driver.drv);
|
||||
class_destroy(nd_class);
|
||||
class_unregister(&nd_class);
|
||||
unregister_chrdev(nvdimm_bus_major, "ndctl");
|
||||
unregister_chrdev(nvdimm_major, "dimmctl");
|
||||
bus_unregister(&nvdimm_bus_type);
|
||||
|
|
Loading…
Reference in New Issue
Block a user