char: xillybus: make xillybus_class a static const structure
Now that the driver core allows for struct class to be in read-only memory, move the xillybus_class structure to be declared at build time placing it into read-only memory, instead of having to be dynamically allocated at load time. Cc: Eli Billauer <eli.billauer@gmail.com> Cc: Arnd Bergmann <arnd@arndb.de> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Acked-by: Eli Billauer <eli.billauer@gmail.com> Link: https://lore.kernel.org/r/20230620143751.578239-18-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
936cb492a1
commit
9ee202e69e
@@ -23,7 +23,9 @@ MODULE_LICENSE("GPL v2");
|
||||
|
||||
static DEFINE_MUTEX(unit_mutex);
|
||||
static LIST_HEAD(unit_list);
|
||||
static struct class *xillybus_class;
|
||||
static const struct class xillybus_class = {
|
||||
.name = "xillybus",
|
||||
};
|
||||
|
||||
#define UNITNAMELEN 16
|
||||
|
||||
@@ -121,7 +123,7 @@ int xillybus_init_chrdev(struct device *dev,
|
||||
len -= namelen + 1;
|
||||
idt += namelen + 1;
|
||||
|
||||
device = device_create(xillybus_class,
|
||||
device = device_create(&xillybus_class,
|
||||
NULL,
|
||||
MKDEV(unit->major,
|
||||
i + unit->lowest_minor),
|
||||
@@ -152,7 +154,7 @@ int xillybus_init_chrdev(struct device *dev,
|
||||
|
||||
unroll_device_create:
|
||||
for (i--; i >= 0; i--)
|
||||
device_destroy(xillybus_class, MKDEV(unit->major,
|
||||
device_destroy(&xillybus_class, MKDEV(unit->major,
|
||||
i + unit->lowest_minor));
|
||||
|
||||
cdev_del(unit->cdev);
|
||||
@@ -193,7 +195,7 @@ void xillybus_cleanup_chrdev(void *private_data,
|
||||
for (minor = unit->lowest_minor;
|
||||
minor < (unit->lowest_minor + unit->num_nodes);
|
||||
minor++)
|
||||
device_destroy(xillybus_class, MKDEV(unit->major, minor));
|
||||
device_destroy(&xillybus_class, MKDEV(unit->major, minor));
|
||||
|
||||
cdev_del(unit->cdev);
|
||||
|
||||
@@ -242,19 +244,12 @@ EXPORT_SYMBOL(xillybus_find_inode);
|
||||
|
||||
static int __init xillybus_class_init(void)
|
||||
{
|
||||
xillybus_class = class_create("xillybus");
|
||||
|
||||
if (IS_ERR(xillybus_class)) {
|
||||
pr_warn("Failed to register xillybus class\n");
|
||||
|
||||
return PTR_ERR(xillybus_class);
|
||||
}
|
||||
return 0;
|
||||
return class_register(&xillybus_class);
|
||||
}
|
||||
|
||||
static void __exit xillybus_class_exit(void)
|
||||
{
|
||||
class_destroy(xillybus_class);
|
||||
class_unregister(&xillybus_class);
|
||||
}
|
||||
|
||||
module_init(xillybus_class_init);
|
||||
|
||||
Reference in New Issue
Block a user