2024-03-05 11:38:12

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 0/6] s390: constify struct class usage

This is a simple and straight forward cleanup series that aims to make the
class structures in s390 constant. This has been possible since 2023 [1].

[1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/

Signed-off-by: Ricardo B. Marliere <[email protected]>
---
Ricardo B. Marliere (6):
s390: zcrypt: make zcrypt_class constant
s390: vmur: make vmur_class constant
s390: vmlogrdr: make vmlogrdr_class constant
s390: tape: make tape_class constant
s390: raw3270: improve raw3270_init() readability
s390: raw3270: make class3270 constant

drivers/s390/char/fs3270.c | 8 ++++----
drivers/s390/char/raw3270.c | 32 ++++++++++++++++++++------------
drivers/s390/char/raw3270.h | 2 +-
drivers/s390/char/tape_class.c | 17 ++++++++---------
drivers/s390/char/vmlogrdr.c | 19 +++++++++----------
drivers/s390/char/vmur.c | 18 +++++++++---------
drivers/s390/crypto/zcrypt_api.c | 33 +++++++++++++++++----------------
7 files changed, 68 insertions(+), 61 deletions(-)
---
base-commit: 6a42aaf8e867f4876370c3d482ee0c21769dff58
change-id: 20240305-class_cleanup-s390-d57f7ccc15c9

Best regards,
--
Ricardo B. Marliere <[email protected]>



2024-03-05 11:38:49

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 2/6] s390: vmur: make vmur_class constant

Since commit 43a7206b0963 ("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 vmur_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 <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Ricardo B. Marliere <[email protected]>
---
drivers/s390/char/vmur.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c
index 1d17a83569ce..47bfb50f8eb1 100644
--- a/drivers/s390/char/vmur.c
+++ b/drivers/s390/char/vmur.c
@@ -48,7 +48,9 @@ MODULE_DESCRIPTION("s390 z/VM virtual unit record device driver");
MODULE_LICENSE("GPL");

static dev_t ur_first_dev_maj_min;
-static struct class *vmur_class;
+static const struct class vmur_class = {
+ .name = "vmur",
+};
static struct debug_info *vmur_dbf;

/* We put the device's record length (for writes) in the driver_info field */
@@ -912,7 +914,7 @@ static int ur_set_online(struct ccw_device *cdev)
goto fail_free_cdev;
}

- urd->device = device_create(vmur_class, &cdev->dev,
+ urd->device = device_create(&vmur_class, &cdev->dev,
urd->char_device->dev, NULL, "%s", node_id);
if (IS_ERR(urd->device)) {
rc = PTR_ERR(urd->device);
@@ -958,7 +960,7 @@ static int ur_set_offline_force(struct ccw_device *cdev, int force)
/* Work not run yet - need to release reference here */
urdev_put(urd);
}
- device_destroy(vmur_class, urd->char_device->dev);
+ device_destroy(&vmur_class, urd->char_device->dev);
cdev_del(urd->char_device);
urd->char_device = NULL;
rc = 0;
@@ -1022,11 +1024,9 @@ static int __init ur_init(void)

debug_set_level(vmur_dbf, 6);

- vmur_class = class_create("vmur");
- if (IS_ERR(vmur_class)) {
- rc = PTR_ERR(vmur_class);
+ rc = class_register(&vmur_class);
+ if (rc)
goto fail_free_dbf;
- }

rc = ccw_driver_register(&ur_driver);
if (rc)
@@ -1046,7 +1046,7 @@ static int __init ur_init(void)
fail_unregister_driver:
ccw_driver_unregister(&ur_driver);
fail_class_destroy:
- class_destroy(vmur_class);
+ class_unregister(&vmur_class);
fail_free_dbf:
debug_unregister(vmur_dbf);
return rc;
@@ -1056,7 +1056,7 @@ static void __exit ur_exit(void)
{
unregister_chrdev_region(ur_first_dev_maj_min, NUM_MINORS);
ccw_driver_unregister(&ur_driver);
- class_destroy(vmur_class);
+ class_unregister(&vmur_class);
debug_unregister(vmur_dbf);
pr_info("%s unloaded.\n", ur_banner);
}

--
2.43.0


2024-03-05 11:38:51

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 4/6] s390: tape: make tape_class constant

Since commit 43a7206b0963 ("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 tape_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 <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Ricardo B. Marliere <[email protected]>
---
drivers/s390/char/tape_class.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/s390/char/tape_class.c b/drivers/s390/char/tape_class.c
index 277a0f903d11..eae362bbfbb5 100644
--- a/drivers/s390/char/tape_class.c
+++ b/drivers/s390/char/tape_class.c
@@ -22,7 +22,9 @@ MODULE_DESCRIPTION(
);
MODULE_LICENSE("GPL");

-static struct class *tape_class;
+static const struct class tape_class = {
+ .name = "tape390",
+};

/*
* Register a tape device and return a pointer to the cdev structure.
@@ -74,7 +76,7 @@ struct tape_class_device *register_tape_dev(
if (rc)
goto fail_with_cdev;

- tcd->class_device = device_create(tape_class, device,
+ tcd->class_device = device_create(&tape_class, device,
tcd->char_device->dev, NULL,
"%s", tcd->device_name);
rc = PTR_ERR_OR_ZERO(tcd->class_device);
@@ -91,7 +93,7 @@ struct tape_class_device *register_tape_dev(
return tcd;

fail_with_class_device:
- device_destroy(tape_class, tcd->char_device->dev);
+ device_destroy(&tape_class, tcd->char_device->dev);

fail_with_cdev:
cdev_del(tcd->char_device);
@@ -107,7 +109,7 @@ void unregister_tape_dev(struct device *device, struct tape_class_device *tcd)
{
if (tcd != NULL && !IS_ERR(tcd)) {
sysfs_remove_link(&device->kobj, tcd->mode_name);
- device_destroy(tape_class, tcd->char_device->dev);
+ device_destroy(&tape_class, tcd->char_device->dev);
cdev_del(tcd->char_device);
kfree(tcd);
}
@@ -117,15 +119,12 @@ EXPORT_SYMBOL(unregister_tape_dev);

static int __init tape_init(void)
{
- tape_class = class_create("tape390");
-
- return 0;
+ return class_register(&tape_class);
}

static void __exit tape_exit(void)
{
- class_destroy(tape_class);
- tape_class = NULL;
+ class_unregister(&tape_class);
}

postcore_initcall(tape_init);

--
2.43.0


2024-03-08 16:19:48

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH 0/6] s390: constify struct class usage

On Tue, Mar 05, 2024 at 08:25:18AM -0300, Ricardo B. Marliere wrote:
> This is a simple and straight forward cleanup series that aims to make the
> class structures in s390 constant. This has been possible since 2023 [1].
>
> [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
>
> Signed-off-by: Ricardo B. Marliere <[email protected]>
> ---
> Ricardo B. Marliere (6):
> s390: zcrypt: make zcrypt_class constant
> s390: vmur: make vmur_class constant
> s390: vmlogrdr: make vmlogrdr_class constant
> s390: tape: make tape_class constant
> s390: raw3270: improve raw3270_init() readability
> s390: raw3270: make class3270 constant
>
> drivers/s390/char/fs3270.c | 8 ++++----
> drivers/s390/char/raw3270.c | 32 ++++++++++++++++++++------------
> drivers/s390/char/raw3270.h | 2 +-
> drivers/s390/char/tape_class.c | 17 ++++++++---------
> drivers/s390/char/vmlogrdr.c | 19 +++++++++----------
> drivers/s390/char/vmur.c | 18 +++++++++---------
> drivers/s390/crypto/zcrypt_api.c | 33 +++++++++++++++++----------------
> 7 files changed, 68 insertions(+), 61 deletions(-)

Series applied, thanks!