OSDN Git Service

tcp: avoid indirect call in tcp_new_space()
authorEric Dumazet <edumazet@google.com>
Wed, 21 Jul 2021 09:06:14 +0000 (02:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Jul 2021 16:02:11 +0000 (09:02 -0700)
For tcp sockets, sk->sk_write_space is most probably sk_stream_write_space().

Other sk->sk_write_space() calls in TCP are slow path and do not deserve
any change.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c

index 149ceb5..bef2c8b 100644 (file)
@@ -5383,7 +5383,7 @@ static void tcp_new_space(struct sock *sk)
                tp->snd_cwnd_stamp = tcp_jiffies32;
        }
 
-       sk->sk_write_space(sk);
+       INDIRECT_CALL_1(sk->sk_write_space, sk_stream_write_space, sk);
 }
 
 static void tcp_check_space(struct sock *sk)