public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] virt: coco: change tsm_class to a const struct
@ 2026-03-03 19:05 Jori Koolstra
  2026-03-04  7:12 ` Thomas Weißschuh
  0 siblings, 1 reply; 5+ messages in thread
From: Jori Koolstra @ 2026-03-03 19:05 UTC (permalink / raw)
  To: kees
  Cc: Jori Koolstra, Greg Kroah-Hartman, Dan Williams,
	Alexey Kardashevskiy, Jonathan Cameron, Bjorn Helgaas, Xu Yilun,
	Thomas Weißschuh, open list

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/

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
---
 drivers/virt/coco/tsm-core.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/virt/coco/tsm-core.c b/drivers/virt/coco/tsm-core.c
index 98dcf7d836df..04e347ea4b7c 100644
--- a/drivers/virt/coco/tsm-core.c
+++ b/drivers/virt/coco/tsm-core.c
@@ -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,16 @@ 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);
+	int err;
 
-	tsm_class->dev_release = tsm_release;
-	return 0;
+	err = class_register(&tsm_class);
+	return err;
 }
 module_init(tsm_init)
 
 static void __exit tsm_exit(void)
 {
-	class_destroy(tsm_class);
+	class_unregister(&tsm_class);
 }
 module_exit(tsm_exit)
 

base-commit: d466c332e106fe666d1e2f5a24d08e308bebbfa1
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-04-01 17:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-03 19:05 [PATCH] virt: coco: change tsm_class to a const struct Jori Koolstra
2026-03-04  7:12 ` Thomas Weißschuh
2026-03-04  9:35   ` Jori Koolstra
2026-03-04  9:59     ` Greg Kroah-Hartman
2026-04-01 17:07   ` Jori Koolstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox