Skip to content

Commit 137380c

Browse files
ivanorlov2206axboe
authored andcommitted
block/rnbd: make all 'class' structures const
Now that the driver core allows for struct class to be in read-only memory, making all 'class' structures to be declared at build time placing them into read-only memory, instead of having to be dynamically allocated at load time. Cc: "Md. Haris Iqbal" <haris.iqbal@ionos.com> Cc: Jack Wang <jinpu.wang@ionos.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: linux-block@vger.kernel.org Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Jack Wang <jinpu.wang@ionos.com> Link: https://lore.kernel.org/r/20230620180129.645646-5-gregkh@linuxfoundation.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 56e71bd commit 137380c

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

drivers/block/rnbd/rnbd-clt-sysfs.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
#include "rnbd-clt.h"
2525

2626
static struct device *rnbd_dev;
27-
static struct class *rnbd_dev_class;
27+
static const struct class rnbd_dev_class = {
28+
.name = "rnbd_client",
29+
};
2830
static struct kobject *rnbd_devs_kobj;
2931

3032
enum {
@@ -646,11 +648,11 @@ int rnbd_clt_create_sysfs_files(void)
646648
{
647649
int err;
648650

649-
rnbd_dev_class = class_create("rnbd-client");
650-
if (IS_ERR(rnbd_dev_class))
651-
return PTR_ERR(rnbd_dev_class);
651+
err = class_register(&rnbd_dev_class);
652+
if (err)
653+
return err;
652654

653-
rnbd_dev = device_create_with_groups(rnbd_dev_class, NULL,
655+
rnbd_dev = device_create_with_groups(&rnbd_dev_class, NULL,
654656
MKDEV(0, 0), NULL,
655657
default_attr_groups, "ctl");
656658
if (IS_ERR(rnbd_dev)) {
@@ -666,9 +668,9 @@ int rnbd_clt_create_sysfs_files(void)
666668
return 0;
667669

668670
dev_destroy:
669-
device_destroy(rnbd_dev_class, MKDEV(0, 0));
671+
device_destroy(&rnbd_dev_class, MKDEV(0, 0));
670672
cls_destroy:
671-
class_destroy(rnbd_dev_class);
673+
class_unregister(&rnbd_dev_class);
672674

673675
return err;
674676
}
@@ -678,6 +680,6 @@ void rnbd_clt_destroy_sysfs_files(void)
678680
sysfs_remove_group(&rnbd_dev->kobj, &default_attr_group);
679681
kobject_del(rnbd_devs_kobj);
680682
kobject_put(rnbd_devs_kobj);
681-
device_destroy(rnbd_dev_class, MKDEV(0, 0));
682-
class_destroy(rnbd_dev_class);
683+
device_destroy(&rnbd_dev_class, MKDEV(0, 0));
684+
class_unregister(&rnbd_dev_class);
683685
}

drivers/block/rnbd/rnbd-srv-sysfs.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
#include "rnbd-srv.h"
2020

2121
static struct device *rnbd_dev;
22-
static struct class *rnbd_dev_class;
22+
static const struct class rnbd_dev_class = {
23+
.name = "rnbd-server",
24+
};
2325
static struct kobject *rnbd_devs_kobj;
2426

2527
static void rnbd_srv_dev_release(struct kobject *kobj)
@@ -213,12 +215,12 @@ int rnbd_srv_create_sysfs_files(void)
213215
{
214216
int err;
215217

216-
rnbd_dev_class = class_create("rnbd-server");
217-
if (IS_ERR(rnbd_dev_class))
218-
return PTR_ERR(rnbd_dev_class);
218+
err = class_register(&rnbd_dev_class);
219+
if (err)
220+
return err;
219221

220-
rnbd_dev = device_create(rnbd_dev_class, NULL,
221-
MKDEV(0, 0), NULL, "ctl");
222+
rnbd_dev = device_create(&rnbd_dev_class, NULL,
223+
MKDEV(0, 0), NULL, "ctl");
222224
if (IS_ERR(rnbd_dev)) {
223225
err = PTR_ERR(rnbd_dev);
224226
goto cls_destroy;
@@ -232,9 +234,9 @@ int rnbd_srv_create_sysfs_files(void)
232234
return 0;
233235

234236
dev_destroy:
235-
device_destroy(rnbd_dev_class, MKDEV(0, 0));
237+
device_destroy(&rnbd_dev_class, MKDEV(0, 0));
236238
cls_destroy:
237-
class_destroy(rnbd_dev_class);
239+
class_unregister(&rnbd_dev_class);
238240

239241
return err;
240242
}
@@ -243,6 +245,6 @@ void rnbd_srv_destroy_sysfs_files(void)
243245
{
244246
kobject_del(rnbd_devs_kobj);
245247
kobject_put(rnbd_devs_kobj);
246-
device_destroy(rnbd_dev_class, MKDEV(0, 0));
247-
class_destroy(rnbd_dev_class);
248+
device_destroy(&rnbd_dev_class, MKDEV(0, 0));
249+
class_unregister(&rnbd_dev_class);
248250
}

0 commit comments

Comments
 (0)