1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
From: John Thomson <git@johnthomson.fastmail.com.au>
Date: 21 Oct 2022 13:00:00 +1000
Subject: [PATCH] xt_coova: fix kernel>=5.17
Linux kernel 5.17 removed PDE_DATA, and replaced it with pde_data [0]
[0]: https://github.com/torvalds/linux/commit/359745d78351c6f5442435f81549f0207ece28aa
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
--- a/src/linux/xt_coova.c
+++ b/src/linux/xt_coova.c
@@ -470,7 +470,9 @@ static int coova_seq_open(struct inode *
if (st == NULL)
return -ENOMEM;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
+ st->table = pde_data(inode);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
st->table = PDE_DATA(inode);
#else
st->table = pde->data;
@@ -482,7 +484,9 @@ static ssize_t
coova_mt_proc_write(struct file *file, const char __user *input,
size_t size, loff_t *loff)
{
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
+ struct coova_table *t = pde_data(file_inode(file));
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
struct coova_table *t = PDE_DATA(file_inode(file));
#else
const struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|