diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2022-01-27 00:36:23 +0000 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-01-27 19:46:10 -0800 |
commit | 406c4a0af010b8714d18e4c89de5575e1d3888f8 (patch) | |
tree | 379ef5bf46839a0106b2e17a0aa24266871f711b /net/ipv6/udp.c | |
parent | cd3c748077365dde89f2a3da738ce556fd04b0a3 (diff) | |
download | linux-406c4a0af010b8714d18e4c89de5575e1d3888f8.tar.gz linux-406c4a0af010b8714d18e4c89de5575e1d3888f8.tar.bz2 linux-406c4a0af010b8714d18e4c89de5575e1d3888f8.zip |
udp6: shuffle up->pending AF_INET bits
Corked AF_INET for ipv6 socket doesn't appear to be the hottest case,
so move it out of the common path under up->pending check to remove
overhead.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 528b81ef19c9..e221a6957b1f 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1363,9 +1363,6 @@ do_udp_sendmsg: } } - if (up->pending == AF_INET) - return udp_sendmsg(sk, msg, len); - /* Rough check on arithmetic overflow, better check is made in ip6_append_data(). */ @@ -1374,6 +1371,8 @@ do_udp_sendmsg: getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag; if (up->pending) { + if (up->pending == AF_INET) + return udp_sendmsg(sk, msg, len); /* * There are pending frames. * The socket lock must be held while it's corked. |