--- /dev/null
+--- a/src/linux/xt_coova.c
++++ b/src/linux/xt_coova.c
+@@ -91,8 +91,12 @@ static DEFINE_MUTEX(coova_mutex);
+
+ #ifdef CONFIG_PROC_FS
+ static struct proc_dir_entry *coova_proc_dir;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
++static const struct proc_ops coova_old_fops, coova_mt_fops;
++#else
+ static const struct file_operations coova_old_fops, coova_mt_fops;
+ #endif
++#endif
+
+ static u_int32_t hash_rnd;
+ static bool hash_rnd_initted;
+@@ -577,6 +581,14 @@ coova_mt_proc_write(struct file *file, c
+ return size + 1;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
++static const struct proc_ops coova_mt_fops = {
++ .proc_open = coova_seq_open,
++ .proc_read = seq_read,
++ .proc_write = coova_mt_proc_write,
++ .proc_release = seq_release_private,
++};
++#else
+ static const struct file_operations coova_mt_fops = {
+ .open = coova_seq_open,
+ .read = seq_read,
+@@ -584,6 +596,7 @@ static const struct file_operations coov
+ .release = seq_release_private,
+ .owner = THIS_MODULE,
+ };
++#endif
+ #endif /* CONFIG_PROC_FS */
+
+ static struct xt_match coova_mt_reg[] __read_mostly = {