From f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 31 Jan 2024 01:04:47 +0000
Subject: [PATCH] add driver 5G

---
 kernel/include/linux/bpfilter.h |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/kernel/include/linux/bpfilter.h b/kernel/include/linux/bpfilter.h
index f02cee0..2ae3c8e 100644
--- a/kernel/include/linux/bpfilter.h
+++ b/kernel/include/linux/bpfilter.h
@@ -3,13 +3,23 @@
 #define _LINUX_BPFILTER_H
 
 #include <uapi/linux/bpfilter.h>
+#include <linux/usermode_driver.h>
+#include <linux/sockptr.h>
 
 struct sock;
-int bpfilter_ip_set_sockopt(struct sock *sk, int optname, char __user *optval,
+int bpfilter_ip_set_sockopt(struct sock *sk, int optname, sockptr_t optval,
 			    unsigned int optlen);
 int bpfilter_ip_get_sockopt(struct sock *sk, int optname, char __user *optval,
 			    int __user *optlen);
-extern int (*bpfilter_process_sockopt)(struct sock *sk, int optname,
-				       char __user *optval,
-				       unsigned int optlen, bool is_set);
+void bpfilter_umh_cleanup(struct umd_info *info);
+
+struct bpfilter_umh_ops {
+	struct umd_info info;
+	/* since ip_getsockopt() can run in parallel, serialize access to umh */
+	struct mutex lock;
+	int (*sockopt)(struct sock *sk, int optname, sockptr_t optval,
+		       unsigned int optlen, bool is_set);
+	int (*start)(void);
+};
+extern struct bpfilter_umh_ops bpfilter_ops;
 #endif

--
Gitblit v1.6.2