]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
virt: coco: change tsm_class to a const struct
authorJori Koolstra <jkoolstra@xs4all.nl>
Fri, 6 Mar 2026 18:33:17 +0000 (19:33 +0100)
committerDan Williams <djbw@kernel.org>
Thu, 2 Apr 2026 22:45:18 +0000 (15:45 -0700)
The class_create() call has been deprecated in favor of class_register()
as the driver core now allows for a struct class to be in read-only
memory. Change tsm_class to be a const struct class and drop the
class_create() call. Compile tested only.

Link: https://lore.kernel.org/all/2023040244-duffel-pushpin-f738@gregkh/
Changes with v1:
- Removed redundant int err variable.

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
Reviewed-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Link: https://patch.msgid.link/20260306183325.245254-1-jkoolstra@xs4all.nl
Signed-off-by: Dan Williams <djbw@kernel.org>
drivers/virt/coco/tsm-core.c

index 98dcf7d836df85ee886dcc6b1879fa44d63a8b44..e784993353d8f36cb13fd5f308a74f77ac393437 100644 (file)
@@ -9,7 +9,11 @@
 #include <linux/cleanup.h>
 #include <linux/pci-tsm.h>
 
-static struct class *tsm_class;
+static void tsm_release(struct device *);
+static const struct class tsm_class = {
+       .name           = "tsm",
+       .dev_release    = tsm_release
+};
 static DEFINE_IDA(tsm_ida);
 
 static int match_id(struct device *dev, const void *data)
@@ -22,7 +26,7 @@ static int match_id(struct device *dev, const void *data)
 
 struct tsm_dev *find_tsm_dev(int id)
 {
-       struct device *dev = class_find_device(tsm_class, NULL, &id, match_id);
+       struct device *dev = class_find_device(&tsm_class, NULL, &id, match_id);
 
        if (!dev)
                return NULL;
@@ -46,7 +50,7 @@ static struct tsm_dev *alloc_tsm_dev(struct device *parent)
        tsm_dev->id = id;
        dev = &tsm_dev->dev;
        dev->parent = parent;
-       dev->class = tsm_class;
+       dev->class = &tsm_class;
        device_initialize(dev);
 
        return no_free_ptr(tsm_dev);
@@ -114,18 +118,13 @@ static void tsm_release(struct device *dev)
 
 static int __init tsm_init(void)
 {
-       tsm_class = class_create("tsm");
-       if (IS_ERR(tsm_class))
-               return PTR_ERR(tsm_class);
-
-       tsm_class->dev_release = tsm_release;
-       return 0;
+       return class_register(&tsm_class);
 }
 module_init(tsm_init)
 
 static void __exit tsm_exit(void)
 {
-       class_destroy(tsm_class);
+       class_unregister(&tsm_class);
 }
 module_exit(tsm_exit)