On 7/27/16 3:03 PM, Tom Herbert wrote:
diff --git a/net/strparser/strparser.c b/net/strparser/strparser.c
new file mode 100644
index 0000000..d7aec13
--- /dev/null
+++ b/net/strparser/strparser.c
@@ -0,0 +1,492 @@

missing copyright header?

+#include <linux/bpf.h>
+#include <linux/errno.h>
+#include <linux/errqueue.h>
+#include <linux/file.h>
+#include <linux/in.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/net.h>
+#include <linux/netdevice.h>
+#include <linux/poll.h>
+#include <linux/rculist.h>
+#include <linux/skbuff.h>
+#include <linux/socket.h>
+#include <linux/uaccess.h>
+#include <linux/workqueue.h>
+#include <net/strparser.h>
+#include <net/netns/generic.h>
+#include <net/sock.h>
+#include <net/tcp.h>

-----8<-----


+/* Lower sock lock held */
+void strp_tcp_data_ready(struct sock *sk)
+{
+       struct strparser *strp;
+
+       read_lock_bh(&sk->sk_callback_lock);
+
+       strp = (struct strparser *)sk->sk_user_data;
+       if (unlikely(!strp || strp->rx_stopped))
+               goto out;
+
+       if (strp->rx_paused)
+               goto out;
+
+       if (strp->rx_need_bytes) {
+               if (tcp_inq(sk) >= strp->rx_need_bytes)
+                       strp->rx_need_bytes = 0;
+               else
+                       goto out;
+       }
+
+       if (strp_tcp_read_sock(strp) == -ENOMEM)
+               queue_delayed_work(strp_wq, &strp->rx_delayed_work, 0);
+
+out:
+       read_unlock_bh(&sk->sk_callback_lock);
+}
+EXPORT_SYMBOL(strp_tcp_data_ready);

The module is GPL; did you want the symbol exports to be GPL as well?


Reply via email to