mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
s390/vmlogrdr: make vmlogrdr_class constant
Since commit 43a7206b09
("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the vmlogrdr_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: "Ricardo B. Marliere" <ricardo@marliere.net>
Link: https://lore.kernel.org/r/20240305-class_cleanup-s390-v1-3-c4ff1ec49ffd@marliere.net
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
0ad1d9fa59
commit
b5b44ac829
1 changed files with 8 additions and 10 deletions
|
@ -679,7 +679,9 @@ static const struct attribute_group *vmlogrdr_attr_groups[] = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
static struct class *vmlogrdr_class;
|
||||
static const struct class vmlogrdr_class = {
|
||||
.name = "vmlogrdr_class",
|
||||
};
|
||||
static struct device_driver vmlogrdr_driver = {
|
||||
.name = "vmlogrdr",
|
||||
.bus = &iucv_bus,
|
||||
|
@ -699,12 +701,9 @@ static int vmlogrdr_register_driver(void)
|
|||
if (ret)
|
||||
goto out_iucv;
|
||||
|
||||
vmlogrdr_class = class_create("vmlogrdr");
|
||||
if (IS_ERR(vmlogrdr_class)) {
|
||||
ret = PTR_ERR(vmlogrdr_class);
|
||||
vmlogrdr_class = NULL;
|
||||
ret = class_register(&vmlogrdr_class);
|
||||
if (ret)
|
||||
goto out_driver;
|
||||
}
|
||||
return 0;
|
||||
|
||||
out_driver:
|
||||
|
@ -718,8 +717,7 @@ static int vmlogrdr_register_driver(void)
|
|||
|
||||
static void vmlogrdr_unregister_driver(void)
|
||||
{
|
||||
class_destroy(vmlogrdr_class);
|
||||
vmlogrdr_class = NULL;
|
||||
class_unregister(&vmlogrdr_class);
|
||||
driver_unregister(&vmlogrdr_driver);
|
||||
iucv_unregister(&vmlogrdr_iucv_handler, 1);
|
||||
}
|
||||
|
@ -754,7 +752,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
|
|||
return ret;
|
||||
}
|
||||
|
||||
priv->class_device = device_create(vmlogrdr_class, dev,
|
||||
priv->class_device = device_create(&vmlogrdr_class, dev,
|
||||
MKDEV(vmlogrdr_major,
|
||||
priv->minor_num),
|
||||
priv, "%s", dev_name(dev));
|
||||
|
@ -771,7 +769,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
|
|||
|
||||
static int vmlogrdr_unregister_device(struct vmlogrdr_priv_t *priv)
|
||||
{
|
||||
device_destroy(vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num));
|
||||
device_destroy(&vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num));
|
||||
if (priv->device != NULL) {
|
||||
device_unregister(priv->device);
|
||||
priv->device=NULL;
|
||||
|
|
Loading…
Reference in a new issue