From 0addb868dc557433e5357e3d9abd2464ef6df6c5 Mon Sep 17 00:00:00 2001 From: Amit Dhingra Date: Sat, 2 Sep 2023 20:24:35 +0200 Subject: [PATCH] Remove module * parameter from class_create() (#222) From v6.4, class_create() does not have module * See commit 11ba11 : > driver core: class: remove module * from class_create() > > The module pointer in class_create() never actually did anything, > and it shouldn't have been requred to be set as a parameter even > if it did something. So just remove it and fix up all callers of the > function in the kernel tree at the same time. --- examples/chardev.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/chardev.c b/examples/chardev.c index 7972304..0737779 100644 --- a/examples/chardev.c +++ b/examples/chardev.c @@ -14,6 +14,7 @@ #include #include #include /* for get_user and put_user */ +#include #include @@ -62,7 +63,11 @@ static int __init chardev_init(void) pr_info("I was assigned major number %d.\n", major); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0) + cls = class_create(DEVICE_NAME); +#else cls = class_create(THIS_MODULE, DEVICE_NAME); +#endif device_create(cls, NULL, MKDEV(major, 0), NULL, DEVICE_NAME); pr_info("Device created on /dev/%s\n", DEVICE_NAME);