From 4bc8daf28251e2384a06360882994d777dcf5276 Mon Sep 17 00:00:00 2001 From: Yoshiki Ito Date: Thu, 10 Feb 2022 09:14:58 +0900 Subject: Add support for evklib to use struct proc_ops Kernel 5.6 and later replaced struct file_operations with struct proc_ops. Enabling agl-refhw-h3 feature or virtio-aarch64 machine configuration will cause build errors. This patch enables kernel-module-evklib to use struct proc_ops at 5.6 and later to avoid the errors. Bug-AGL: SPEC-4254 Signed-off-by: Yoshiki Ito Change-Id: Ie78913fc16d245403b7e283b8bdea94c7ea7d666 (cherry picked from commit 4bdea8fcad6ffd4bcb1bba404ebf30c344ab7dfe) --- module/kernel-module-evklib/evk_lib.c | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'module') diff --git a/module/kernel-module-evklib/evk_lib.c b/module/kernel-module-evklib/evk_lib.c index e6dd238..504b2e1 100755 --- a/module/kernel-module-evklib/evk_lib.c +++ b/module/kernel-module-evklib/evk_lib.c @@ -53,6 +53,10 @@ typedef __s32 INT32; typedef __s64 INT64; #endif /* !STANDARD_INT_DEFINITIONS */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) +#define HAVE_PROC_OPS +#endif + #define ENABLE_PROC_FS 1 #define EVK_NAME "evk" @@ -1839,6 +1843,14 @@ evk_procFS_queue_open(struct inode *inode, struct file *file) return single_open(file, evk_procFS_queue_show, NULL); } +#ifdef HAVE_PROC_OPS +static struct proc_ops evk_proc_flag_fops = { + .proc_open = evk_procFS_flag_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, +}; +#else static struct file_operations evk_proc_flag_fops = { .owner = THIS_MODULE, .open = evk_procFS_flag_open, @@ -1846,7 +1858,16 @@ static struct file_operations evk_proc_flag_fops = { .llseek = seq_lseek, .release = single_release, }; - +#endif /* HAVE_PROC_OPS */ + +#ifdef HAVE_PROC_OPS +static struct proc_ops evk_proc_flag64_fops = { + .proc_open = evk_procFS_flag64_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, +}; +#else static struct file_operations evk_proc_flag64_fops = { .owner = THIS_MODULE, .open = evk_procFS_flag64_open, @@ -1854,7 +1875,16 @@ static struct file_operations evk_proc_flag64_fops = { .llseek = seq_lseek, .release = single_release, }; - +#endif /* HAVE_PROC_OPS */ + +#ifdef HAVE_PROC_OPS +static struct proc_ops evk_proc_queue_fops = { + .proc_open = evk_procFS_queue_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, +}; +#else static struct file_operations evk_proc_queue_fops = { .owner = THIS_MODULE, .open = evk_procFS_queue_open, @@ -1862,6 +1892,7 @@ static struct file_operations evk_proc_queue_fops = { .llseek = seq_lseek, .release = single_release, }; +#endif /* HAVE_PROC_OPS */ #endif /*ENABLE_PROC_FS*/ __init int -- cgit 1.2.3-korg