From aefc32ae015b56bfe30b9e8f019e3f5cd4042f06 Mon Sep 17 00:00:00 2001 From: Pengfei Xu Date: Mon, 22 Jan 2024 16:56:57 +0800 Subject: [PATCH] cet_ioctl.c: update the function class_create() due to kernel code change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit class_create(const char *name) has no second parameter any more in v6.3-rc1: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dcfbb67e48a2becfce7990386e985b9c45098ee5 And it will cause the cet driver module to fail to compile, as follows: /root/lkvs/cet/cet_driver/cet_ioctl.c:166:14: error: too many arguments to function ‘class_create’ 166 | cl = class_create(THIS_MODULE, "char"); So adjust the class_create() function in driver to fix the above problem due to kernel code change. Signed-off-by: Pengfei Xu --- cet/cet_driver/cet_ioctl.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cet/cet_driver/cet_ioctl.c b/cet/cet_driver/cet_ioctl.c index a6fa3721..f1b8b971 100644 --- a/cet/cet_driver/cet_ioctl.c +++ b/cet/cet_driver/cet_ioctl.c @@ -151,9 +151,10 @@ static int __init cet_ioctl_init(void) { int ret; struct device *dev_ret; + char mod_name[] = "cet_ioctl"; pr_info("Load cet_ioctl start\n"); - ret = alloc_chrdev_region(&dev, FIRST_MINOR, MINOR_CNT, "cet_ioctl"); + ret = alloc_chrdev_region(&dev, FIRST_MINOR, MINOR_CNT, mod_name); if (ret < 0) return ret; @@ -163,7 +164,14 @@ static int __init cet_ioctl_init(void) if (ret < 0) return ret; - cl = class_create(THIS_MODULE, "char"); + /* + * From v6.3-rc1: dcfbb67e48a2becfce7990386e985b9c45098ee5, + * there is no second parameter for class_create(const char *name). + * If the host kernel version is lower than v6.3-rc1, please change + * the code as follows: + * cl = class_create(THIS_MODULE, "char"); + */ + cl = class_create(mod_name); if (IS_ERR(cl)) { cdev_del(&c_dev); unregister_chrdev_region(dev, MINOR_CNT);