aboutsummaryrefslogtreecommitdiffstats
path: root/net/tls/tls_main.c
diff options
context:
space:
mode:
authorJohn Fastabend <john.fastabend@gmail.com>2018-10-12 20:46:00 -0400
committerAlexei Starovoitov <ast@kernel.org>2018-10-15 15:23:19 -0400
commit924ad65ed01ee0eec5d2a3280c01c394343d6df7 (patch)
tree5e3c0dbaa1cd879581d228024c0497235ce563d9 /net/tls/tls_main.c
parentd829e9c4112b52f4f00195900fd4c685f61365ab (diff)
tls: replace poll implementation with read hook
Instead of re-implementing poll routine use the poll callback to trigger read from kTLS, we reuse the stream_memory_read callback which is simpler and achieves the same. This helps to align sockmap and kTLS so we can more easily embed BPF in kTLS. Joint work with Daniel. Signed-off-by: John Fastabend <john.fastabend@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'net/tls/tls_main.c')
-rw-r--r--net/tls/tls_main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c
index b428069a1b05..e90b6d537077 100644
--- a/net/tls/tls_main.c
+++ b/net/tls/tls_main.c
@@ -620,12 +620,14 @@ static void build_protos(struct proto prot[TLS_NUM_CONFIG][TLS_NUM_CONFIG],
620 prot[TLS_SW][TLS_BASE].sendpage = tls_sw_sendpage; 620 prot[TLS_SW][TLS_BASE].sendpage = tls_sw_sendpage;
621 621
622 prot[TLS_BASE][TLS_SW] = prot[TLS_BASE][TLS_BASE]; 622 prot[TLS_BASE][TLS_SW] = prot[TLS_BASE][TLS_BASE];
623 prot[TLS_BASE][TLS_SW].recvmsg = tls_sw_recvmsg; 623 prot[TLS_BASE][TLS_SW].recvmsg = tls_sw_recvmsg;
624 prot[TLS_BASE][TLS_SW].close = tls_sk_proto_close; 624 prot[TLS_BASE][TLS_SW].stream_memory_read = tls_sw_stream_read;
625 prot[TLS_BASE][TLS_SW].close = tls_sk_proto_close;
625 626
626 prot[TLS_SW][TLS_SW] = prot[TLS_SW][TLS_BASE]; 627 prot[TLS_SW][TLS_SW] = prot[TLS_SW][TLS_BASE];
627 prot[TLS_SW][TLS_SW].recvmsg = tls_sw_recvmsg; 628 prot[TLS_SW][TLS_SW].recvmsg = tls_sw_recvmsg;
628 prot[TLS_SW][TLS_SW].close = tls_sk_proto_close; 629 prot[TLS_SW][TLS_SW].stream_memory_read = tls_sw_stream_read;
630 prot[TLS_SW][TLS_SW].close = tls_sk_proto_close;
629 631
630#ifdef CONFIG_TLS_DEVICE 632#ifdef CONFIG_TLS_DEVICE
631 prot[TLS_HW][TLS_BASE] = prot[TLS_BASE][TLS_BASE]; 633 prot[TLS_HW][TLS_BASE] = prot[TLS_BASE][TLS_BASE];
@@ -724,7 +726,6 @@ static int __init tls_register(void)
724 build_protos(tls_prots[TLSV4], &tcp_prot); 726 build_protos(tls_prots[TLSV4], &tcp_prot);
725 727
726 tls_sw_proto_ops = inet_stream_ops; 728 tls_sw_proto_ops = inet_stream_ops;
727 tls_sw_proto_ops.poll = tls_sw_poll;
728 tls_sw_proto_ops.splice_read = tls_sw_splice_read; 729 tls_sw_proto_ops.splice_read = tls_sw_splice_read;
729 730
730#ifdef CONFIG_TLS_DEVICE 731#ifdef CONFIG_TLS_DEVICE