Commit a4393861 authored by Jakub Sitnicki's avatar Jakub Sitnicki Committed by Daniel Borkmann

bpf, sk_msg: Let ULP restore sk_proto and write_space callback

We don't need a fallback for when the socket is not using ULP.
tcp_update_ulp handles this case exactly the same as we do in
sk_psock_restore_proto. Get rid of the duplicated code.
Signed-off-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarJohn Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20200217121530.754315-2-jakub@cloudflare.com
parent b80b033b
...@@ -361,16 +361,7 @@ static inline void sk_psock_restore_proto(struct sock *sk, ...@@ -361,16 +361,7 @@ static inline void sk_psock_restore_proto(struct sock *sk,
sk->sk_prot->unhash = psock->saved_unhash; sk->sk_prot->unhash = psock->saved_unhash;
if (psock->sk_proto) { if (psock->sk_proto) {
struct inet_connection_sock *icsk = inet_csk(sk); tcp_update_ulp(sk, psock->sk_proto, psock->saved_write_space);
bool has_ulp = !!icsk->icsk_ulp_data;
if (has_ulp) {
tcp_update_ulp(sk, psock->sk_proto,
psock->saved_write_space);
} else {
sk->sk_prot = psock->sk_proto;
sk->sk_write_space = psock->saved_write_space;
}
psock->sk_proto = NULL; psock->sk_proto = NULL;
} else { } else {
sk->sk_write_space = psock->saved_write_space; sk->sk_write_space = psock->saved_write_space;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment