misc: hpilo: make ilo_class a static const structure
Now that the driver core allows for struct class to be in read-only memory, move the ilo_class structure to be declared at build time placing it into read-only memory, instead of having to be dynamically allocated at boot time. Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Link: https://lore.kernel.org/r/20230810194239.26892-1-ivan.orlov0322@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b5fa337955
commit
fd06978b06
@ -25,7 +25,9 @@
|
||||
#include <linux/slab.h>
|
||||
#include "hpilo.h"
|
||||
|
||||
static struct class *ilo_class;
|
||||
static const struct class ilo_class = {
|
||||
.name = "iLO",
|
||||
};
|
||||
static unsigned int ilo_major;
|
||||
static unsigned int max_ccb = 16;
|
||||
static char ilo_hwdev[MAX_ILO_DEV];
|
||||
@ -746,7 +748,7 @@ static void ilo_remove(struct pci_dev *pdev)
|
||||
|
||||
minor = MINOR(ilo_hw->cdev.dev);
|
||||
for (i = minor; i < minor + max_ccb; i++)
|
||||
device_destroy(ilo_class, MKDEV(ilo_major, i));
|
||||
device_destroy(&ilo_class, MKDEV(ilo_major, i));
|
||||
|
||||
cdev_del(&ilo_hw->cdev);
|
||||
ilo_disable_interrupts(ilo_hw);
|
||||
@ -839,7 +841,7 @@ static int ilo_probe(struct pci_dev *pdev,
|
||||
|
||||
for (minor = 0 ; minor < max_ccb; minor++) {
|
||||
struct device *dev;
|
||||
dev = device_create(ilo_class, &pdev->dev,
|
||||
dev = device_create(&ilo_class, &pdev->dev,
|
||||
MKDEV(ilo_major, minor), NULL,
|
||||
"hpilo!d%dccb%d", devnum, minor);
|
||||
if (IS_ERR(dev))
|
||||
@ -882,11 +884,9 @@ static int __init ilo_init(void)
|
||||
int error;
|
||||
dev_t dev;
|
||||
|
||||
ilo_class = class_create("iLO");
|
||||
if (IS_ERR(ilo_class)) {
|
||||
error = PTR_ERR(ilo_class);
|
||||
error = class_register(&ilo_class);
|
||||
if (error)
|
||||
goto out;
|
||||
}
|
||||
|
||||
error = alloc_chrdev_region(&dev, 0, MAX_OPEN, ILO_NAME);
|
||||
if (error)
|
||||
@ -902,7 +902,7 @@ static int __init ilo_init(void)
|
||||
chr_remove:
|
||||
unregister_chrdev_region(dev, MAX_OPEN);
|
||||
class_destroy:
|
||||
class_destroy(ilo_class);
|
||||
class_unregister(&ilo_class);
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
@ -911,7 +911,7 @@ static void __exit ilo_exit(void)
|
||||
{
|
||||
pci_unregister_driver(&ilo_driver);
|
||||
unregister_chrdev_region(MKDEV(ilo_major, 0), MAX_OPEN);
|
||||
class_destroy(ilo_class);
|
||||
class_unregister(&ilo_class);
|
||||
}
|
||||
|
||||
MODULE_VERSION("1.5.0");
|
||||
|
Loading…
Reference in New Issue
Block a user