Commit fd06978b authored by Ivan Orlov's avatar Ivan Orlov Committed by Greg Kroah-Hartman
Browse files

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: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarIvan Orlov <ivan.orlov0322@gmail.com>
Link: https://lore.kernel.org/r/20230810194239.26892-1-ivan.orlov0322@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b5fa3379
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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");