diff options
author | John Fastabend <john.fastabend@gmail.com> | 2018-10-12 20:46:00 -0400 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-10-15 15:23:19 -0400 |
commit | 924ad65ed01ee0eec5d2a3280c01c394343d6df7 (patch) | |
tree | 5e3c0dbaa1cd879581d228024c0497235ce563d9 /net/tls/tls_main.c | |
parent | d829e9c4112b52f4f00195900fd4c685f61365ab (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.c | 11 |
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 |