<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in inet_connection_sock.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f1e30061 - tcp/dccp: remove icsk-&gt;icsk_ack.timeout</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#f1e30061</link>
        <description>tcp/dccp: remove icsk-&gt;icsk_ack.timeouticsk-&gt;icsk_ack.timeout can be replaced by icsk-&gt;csk_delack_timer.expiresThis saves 8 bytes in TCP/DCCP sockets and helps for better cache locality.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20250324203607.703850-3-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Mon, 24 Mar 2025 20:36:07 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>a7c428ee - tcp/dccp: remove icsk-&gt;icsk_timeout</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#a7c428ee</link>
        <description>tcp/dccp: remove icsk-&gt;icsk_timeouticsk-&gt;icsk_timeout can be replaced by icsk-&gt;icsk_retransmit_timer.expiresThis saves 8 bytes in TCP/DCCP sockets and helps for better cache locality.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20250324203607.703850-2-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Mon, 24 Mar 2025 20:36:06 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>66034f78 - tcp/dccp: Remove inet_connection_sock_af_ops.addr2sockaddr().</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#66034f78</link>
        <description>tcp/dccp: Remove inet_connection_sock_af_ops.addr2sockaddr().inet_connection_sock_af_ops.addr2sockaddr() hasn&apos;t been used at allin the git era.  $ git grep addr2sockaddr $(git rev-list HEAD | tail -n 1)Let&apos;s remove it.Note that there was a 4 bytes hole after sockaddr_len and now it&apos;s6 bytes, so the binary layout is not changed.Signed-off-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://patch.msgid.link/20250318060112.3729-1-kuniyu@amazon.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Tue, 18 Mar 2025 06:01:07 +0000</pubDate>
        <dc:creator>Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;</dc:creator>
    </item>
<item>
        <title>1937a0be - tcp: move icsk_clean_acked to a better location</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#1937a0be</link>
        <description>tcp: move icsk_clean_acked to a better locationAs a followup of my presentation in Zagreb for netdev 0x19:icsk_clean_acked is only used by TCP when/if CONFIG_TLS_DEVICEis enabled from tcp_ack().Rename it to tcp_clean_acked, move it to tcp_sock structurein the tcp_sock_read_rx for better cache locality in TCPfast path.Define this field only when CONFIG_TLS_DEVICE is enabledsaving 8 bytes on configs not using it.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Neal Cardwell &lt;ncardwell@google.com&gt;Reviewed-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20250317085313.2023214-1-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Mon, 17 Mar 2025 08:53:13 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>15492700 - tcp: cache RTAX_QUICKACK metric in a hot cache line</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#15492700</link>
        <description>tcp: cache RTAX_QUICKACK metric in a hot cache linetcp_in_quickack_mode() is called from input path for small packets.It calls __sk_dst_get() which reads sk-&gt;sk_dst_cache which has beenput in sock_read_tx group (for good reasons).Then dst_metric(dst, RTAX_QUICKACK) also needs extra cache line misses.Cache RTAX_QUICKACK in icsk-&gt;icsk_ack.dst_quick_ack to no longer pullthese cache lines for the cases a delayed ACK is scheduled.After this patch TCP receive path does not longer access sock_read_txgroup.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Jason Xing &lt;kerneljasonxing@gmail.com&gt;Reviewed-by: Neal Cardwell &lt;ncardwell@google.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20250312083907.1931644-1-edumazet@google.comSigned-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Wed, 12 Mar 2025 08:39:07 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>54a378f4 - tcp: add the ability to control max RTO</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#54a378f4</link>
        <description>tcp: add the ability to control max RTOCurrently, TCP stack uses a constant (120 seconds)to limit the RTO value exponential growth.Some applications want to set a lower value.Add TCP_RTO_MAX_MS socket option to set a value (in ms)between 1 and 120 seconds.It is discouraged to change the socket rto max on a livesocket, as it might lead to unexpected disconnects.Following patch is adding a netns sysctl to control thedefault value at socket creation time.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Jason Xing &lt;kerneljasonxing@gmail.com&gt;Reviewed-by: Neal Cardwell &lt;ncardwell@google.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Fri, 07 Feb 2025 15:28:29 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>be258f65 - tcp: rename inet_csk_{delete|reset}_keepalive_timer()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#be258f65</link>
        <description>tcp: rename inet_csk_{delete|reset}_keepalive_timer()inet_csk_delete_keepalive_timer() and inet_csk_reset_keepalive_timer()are only used from core TCP, there is no need to export them.Replace their prefix by tcp.Move them to net/ipv4/tcp_timer.c and make tcp_delete_keepalive_timer()static.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Reviewed-by: Jason Xing &lt;kerneljasonxing@gmail.com&gt;Reviewed-by: Joe Damato &lt;jdamato@fastly.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://patch.msgid.link/20250206094605.2694118-1-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Thu, 06 Feb 2025 09:46:05 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>3479c754 - tcp/dccp: allow a connection when sk_max_ack_backlog is zero</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#3479c754</link>
        <description>tcp/dccp: allow a connection when sk_max_ack_backlog is zeroIf the backlog of listen() is set to zero, sk_acceptq_is_full() allowsone connection to be made, but inet_csk_reqsk_queue_is_full() does not.When the net.ipv4.tcp_syncookies is zero, inet_csk_reqsk_queue_is_full()will cause an immediate drop before the sk_acceptq_is_full() check intcp_conn_request(), resulting in no connection can be made.This patch tries to keep consistent with 64a146513f8f (&quot;[NET]: Revertincorrect accept queue backlog changes.&quot;).Link: https://lore.kernel.org/netdev/20250102080258.53858-1-kuniyu@amazon.com/Fixes: ef547f2ac16b (&quot;tcp: remove max_qlen_log&quot;)Signed-off-by: Zhongqiu Duan &lt;dzq.aishenghu0@gmail.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Reviewed-by: Jason Xing &lt;kerneljasonxing@gmail.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://patch.msgid.link/20250102171426.915276-1-dzq.aishenghu0@gmail.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Thu, 02 Jan 2025 17:14:26 +0000</pubDate>
        <dc:creator>Zhongqiu Duan &lt;dzq.aishenghu0@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>81df4fa9 - tcp: add a fast path in tcp_delack_timer()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#81df4fa9</link>
        <description>tcp: add a fast path in tcp_delack_timer()delack timer is not stopped from inet_csk_clear_xmit_timer()because we do not define INET_CSK_CLEAR_TIMERS.This is a conscious choice : inet_csk_clear_xmit_timer()is often called from another cpu. Calling del_timer()would cause false sharing and lock contention.This means that very often, tcp_delack_timer() is calledat the timer expiration, while there is no ACK to transmit.This can be detected very early, avoiding the socket spinlock.Notes:- test about tp-&gt;compressed_ack is racy,  but in the unlikely case there is a race, the dedicated  compressed_ack_timer hrtimer would close it.- Even if the fast path is not taken, reading  icsk-&gt;icsk_ack.pending and tp-&gt;compressed_ack  before acquiring the socket spinlock reduces  acquisition time and chances of contention.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://patch.msgid.link/20241002173042.917928-4-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Wed, 02 Oct 2024 17:30:42 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>5a9071a7 - tcp: annotate data-races around icsk-&gt;icsk_pending</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#5a9071a7</link>
        <description>tcp: annotate data-races around icsk-&gt;icsk_pendingicsk-&gt;icsk_pending can be read locklessly already.Following patch in the series will add another lockless read.Add smp_load_acquire() and smp_store_release() annotationsbecause following patch will add a test in tcp_write_timer(),and READ_ONCE()/WRITE_ONCE() alone would possibly lead to races.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://patch.msgid.link/20241002173042.917928-2-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Wed, 02 Oct 2024 17:30:40 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>ff46e3b4 - Fix race for duplicate reqsk on identical SYN</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#ff46e3b4</link>
        <description>Fix race for duplicate reqsk on identical SYNWhen bonding is configured in BOND_MODE_BROADCAST mode, if two identicalSYN packets are received at the same time and processed on different CPUs,it can potentially create the same sk (sock) but two different reqsk(request_sock) in tcp_conn_request().These two different reqsk will respond with two SYNACK packets, and sincethe generation of the seq (ISN) incorporates a timestamp, the final twoSYNACK packets will have different seq values.The consequence is that when the Client receives and replies with an ACKto the earlier SYNACK packet, we will reset(RST) it.========================================================================This behavior is consistently reproducible in my local setup,which comprises:                  | NETA1 ------ NETB1 |PC_A --- bond --- |                    | --- bond --- PC_B                  | NETA2 ------ NETB2 |- PC_A is the Server and has two network cards, NETA1 and NETA2. I have  bonded these two cards using BOND_MODE_BROADCAST mode and configured  them to be handled by different CPU.- PC_B is the Client, also equipped with two network cards, NETB1 and  NETB2, which are also bonded and configured in BOND_MODE_BROADCAST mode.If the client attempts a TCP connection to the server, it might encountera failure. Capturing packets from the server side reveals:10.10.10.10.45182 &gt; localhost: Flags [S], seq 320236027,10.10.10.10.45182 &gt; localhost: Flags [S], seq 320236027,localhost &gt; 10.10.10.10.45182: Flags [S.], seq 2967855116,localhost &gt; 10.10.10.10.45182: Flags [S.], seq 2967855123, &lt;==10.10.10.10.45182 &gt; localhost: Flags [.], ack 4294967290,10.10.10.10.45182 &gt; localhost: Flags [.], ack 4294967290,localhost &gt; 10.10.10.10.45182: Flags [R], seq 2967855117, &lt;==localhost &gt; 10.10.10.10.45182: Flags [R], seq 2967855117,Two SYNACKs with different seq numbers are sent by localhost,resulting in an anomaly.========================================================================The attempted solution is as follows:Add a return value to inet_csk_reqsk_queue_hash_add() to confirm if theehash insertion is successful (Up to now, the reason for unsuccessfulinsertion is that a reqsk for the same connection has already beeninserted). If the insertion fails, release the reqsk.Due to the refcnt, Kuniyuki suggests also adding a return value checkfor the DCCP module; if ehash insertion fails, indicating a successfulinsertion of the same connection, simply release the reqsk as well.Simultaneously, In the reqsk_queue_hash_req(), the start of thereq-&gt;rsk_timer is adjusted to be after successful insertion.Fixes: 1da177e4c3f4 (&quot;Linux-2.6.12-rc2&quot;)Signed-off-by: luoxuanqiang &lt;luoxuanqiang@kylinos.cn&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://lore.kernel.org/r/20240621013929.1386815-1-luoxuanqiang@kylinos.cnSigned-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Fri, 21 Jun 2024 01:39:29 +0000</pubDate>
        <dc:creator>luoxuanqiang &lt;luoxuanqiang@kylinos.cn&gt;</dc:creator>
    </item>
<item>
        <title>92ef0fd5 - net: change proto and proto_ops accept type</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#92ef0fd5</link>
        <description>net: change proto and proto_ops accept typeRather than pass in flags, error pointer, and whether this is a kernelinvocation or not, add a struct proto_accept_arg struct as the argument.This then holds all of these arguments, and prepares accept for beingable to pass back more information.No functional changes in this patch.Acked-by: Jakub Kicinski &lt;kuba@kernel.org&gt;Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Thu, 09 May 2024 15:20:08 +0000</pubDate>
        <dc:creator>Jens Axboe &lt;axboe@kernel.dk&gt;</dc:creator>
    </item>
<item>
        <title>9a79c65f - tcp/dccp: complete lockless accesses to sk-&gt;sk_max_ack_backlog</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#9a79c65f</link>
        <description>tcp/dccp: complete lockless accesses to sk-&gt;sk_max_ack_backlogSince commit 099ecf59f05b (&quot;net: annotate lockless accesses tosk-&gt;sk_max_ack_backlog&quot;) decided to handle the sk_max_ack_backloglocklessly, there is one more function mostly called in TCP/DCCPcases. So this patch completes it:)Signed-off-by: Jason Xing &lt;kernelxing@tencent.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://lore.kernel.org/r/20240331090521.71965-1-kerneljasonxing@gmail.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Sun, 31 Mar 2024 09:05:21 +0000</pubDate>
        <dc:creator>Jason Xing &lt;kernelxing@tencent.com&gt;</dc:creator>
    </item>
<item>
        <title>58169ec9 - inet: preserve const qualifier in inet_csk()</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#58169ec9</link>
        <description>inet: preserve const qualifier in inet_csk()We can change inet_csk() to propagate its argument const qualifier,thanks to container_of_const().We have to fix few places that had mistakes, like tcp_bound_rto().Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://lore.kernel.org/r/20240329144931.295800-1-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Fri, 29 Mar 2024 14:49:31 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>151c9c72 - tcp: properly terminate timers for kernel sockets</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#151c9c72</link>
        <description>tcp: properly terminate timers for kernel socketsWe had various syzbot reports about tcp timers firing afterthe corresponding netns has been dismantled.Fortunately Josef Bacik could trigger the issue more often,and could test a patch I wrote two years ago.When TCP sockets are closed, we call inet_csk_clear_xmit_timers()to &apos;stop&apos; the timers.inet_csk_clear_xmit_timers() can be called from any context,including when socket lock is held.This is the reason it uses sk_stop_timer(), aka del_timer().This means that ongoing timers might finish much later.For user sockets, this is fine because each running timerholds a reference on the socket, and the user socket holdsa reference on the netns.For kernel sockets, we risk that the netns is freed beforetimer can complete, because kernel sockets do not holdreference on the netns.This patch adds inet_csk_clear_xmit_timers_sync() functionthat using sk_stop_timer_sync() to make sure all timersare terminated before the kernel socket is released.Modules using kernel sockets close them in their netns exit()handler.Also add sock_not_owned_by_me() helper to get LOCKDEPsupport : inet_csk_clear_xmit_timers_sync() must not be calledwhile socket lock is held.It is very possible we can revert in the future commit3a58f13a881e (&quot;net: rds: acquire refcount on TCP sockets&quot;)which attempted to solve the issue in rds only.(net/smc/af_smc.c and net/mptcp/subflow.c have similar code)We probably can remove the check_net() tests fromtcp_out_of_resources() and __tcp_close() in the future.Reported-by: Josef Bacik &lt;josef@toxicpanda.com&gt;Closes: https://lore.kernel.org/netdev/20240314210740.GA2823176@perftesting/Fixes: 26abe14379f8 (&quot;net: Modify sk_alloc to not reference count the netns of kernel sockets.&quot;)Fixes: 8a68173691f0 (&quot;net: sk_clone_lock() should only do get_net() if the parent is not a kernel socket&quot;)Link: https://lore.kernel.org/bpf/CANn89i+484ffqb93aQm1N-tjxxvb3WDKX0EbD7318RwRgsatjw@mail.gmail.com/Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Tested-by: Josef Bacik &lt;josef@toxicpanda.com&gt;Cc: Tetsuo Handa &lt;penguin-kernel@I-love.SAKURA.ne.jp&gt;Link: https://lore.kernel.org/r/20240322135732.1535772-1-edumazet@google.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Fri, 22 Mar 2024 13:57:32 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
<item>
        <title>198bc90e - tcp: make sure init the accept_queue&apos;s spinlocks once</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#198bc90e</link>
        <description>tcp: make sure init the accept_queue&apos;s spinlocks onceWhen I run syz&apos;s reproduction C program locally, it causes the followingissue:pvqspinlock: lock 0xffff9d181cd5c660 has corrupted value 0x0!WARNING: CPU: 19 PID: 21160 at __pv_queued_spin_unlock_slowpath (kernel/locking/qspinlock_paravirt.h:508)Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011RIP: 0010:__pv_queued_spin_unlock_slowpath (kernel/locking/qspinlock_paravirt.h:508)Code: 73 56 3a ff 90 c3 cc cc cc cc 8b 05 bb 1f 48 01 85 c0 74 05 c3 cc cc cc cc 8b 17 48 89 fe 48 c7 c730 20 ce 8f e8 ad 56 42 ff &lt;0f&gt; 0b c3 cc cc cc cc 0f 0b 0f 1f 40 00 90 90 90 90 90 90 90 90 90RSP: 0018:ffffa8d200604cb8 EFLAGS: 00010282RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff9d1ef60e0908RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff9d1ef60e0900RBP: ffff9d181cd5c280 R08: 0000000000000000 R09: 00000000ffff7fffR10: ffffa8d200604b68 R11: ffffffff907dcdc8 R12: 0000000000000000R13: ffff9d181cd5c660 R14: ffff9d1813a3f330 R15: 0000000000001000FS:  00007fa110184640(0000) GS:ffff9d1ef60c0000(0000) knlGS:0000000000000000CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033CR2: 0000000020000000 CR3: 000000011f65e000 CR4: 00000000000006f0Call Trace:&lt;IRQ&gt;  _raw_spin_unlock (kernel/locking/spinlock.c:186)  inet_csk_reqsk_queue_add (net/ipv4/inet_connection_sock.c:1321)  inet_csk_complete_hashdance (net/ipv4/inet_connection_sock.c:1358)  tcp_check_req (net/ipv4/tcp_minisocks.c:868)  tcp_v4_rcv (net/ipv4/tcp_ipv4.c:2260)  ip_protocol_deliver_rcu (net/ipv4/ip_input.c:205)  ip_local_deliver_finish (net/ipv4/ip_input.c:234)  __netif_receive_skb_one_core (net/core/dev.c:5529)  process_backlog (./include/linux/rcupdate.h:779)  __napi_poll (net/core/dev.c:6533)  net_rx_action (net/core/dev.c:6604)  __do_softirq (./arch/x86/include/asm/jump_label.h:27)  do_softirq (kernel/softirq.c:454 kernel/softirq.c:441)&lt;/IRQ&gt;&lt;TASK&gt;  __local_bh_enable_ip (kernel/softirq.c:381)  __dev_queue_xmit (net/core/dev.c:4374)  ip_finish_output2 (./include/net/neighbour.h:540 net/ipv4/ip_output.c:235)  __ip_queue_xmit (net/ipv4/ip_output.c:535)  __tcp_transmit_skb (net/ipv4/tcp_output.c:1462)  tcp_rcv_synsent_state_process (net/ipv4/tcp_input.c:6469)  tcp_rcv_state_process (net/ipv4/tcp_input.c:6657)  tcp_v4_do_rcv (net/ipv4/tcp_ipv4.c:1929)  __release_sock (./include/net/sock.h:1121 net/core/sock.c:2968)  release_sock (net/core/sock.c:3536)  inet_wait_for_connect (net/ipv4/af_inet.c:609)  __inet_stream_connect (net/ipv4/af_inet.c:702)  inet_stream_connect (net/ipv4/af_inet.c:748)  __sys_connect (./include/linux/file.h:45 net/socket.c:2064)  __x64_sys_connect (net/socket.c:2073 net/socket.c:2070 net/socket.c:2070)  do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)  entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:129)  RIP: 0033:0x7fa10ff05a3d  Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89  c2 4d 89 c8 4c 8b 4c 24 08 0f 05 &lt;48&gt; 3d 01 f0 ff ff 73 01 c3 48 8b 0d ab a3 0e 00 f7 d8 64 89 01 48  RSP: 002b:00007fa110183de8 EFLAGS: 00000202 ORIG_RAX: 000000000000002a  RAX: ffffffffffffffda RBX: 0000000020000054 RCX: 00007fa10ff05a3d  RDX: 000000000000001c RSI: 0000000020000040 RDI: 0000000000000003  RBP: 00007fa110183e20 R08: 0000000000000000 R09: 0000000000000000  R10: 0000000000000000 R11: 0000000000000202 R12: 00007fa110184640  R13: 0000000000000000 R14: 00007fa10fe8b060 R15: 00007fff73e23b20&lt;/TASK&gt;The issue triggering process is analyzed as follows:Thread A                                       Thread Btcp_v4_rcv	//receive ack TCP packet       inet_shutdown  tcp_check_req                                  tcp_disconnect //disconnect sock  ...                                              tcp_set_state(sk, TCP_CLOSE)    inet_csk_complete_hashdance                ...      inet_csk_reqsk_queue_add                 inet_listen  //start listen        spin_lock(&amp;queue-&gt;rskq_lock)             inet_csk_listen_start        ...                                        reqsk_queue_alloc        ...                                          spin_lock_init        spin_unlock(&amp;queue-&gt;rskq_lock)	//warningWhen the socket receives the ACK packet during the three-way handshake,it will hold spinlock. And then the user actively shutdowns the socketand listens to the socket immediately, the spinlock will be initialized.When the socket is going to release the spinlock, a warning is generated.Also the same issue to fastopenq.lock.Move init spinlock to inet_create and inet_accept to make sure init theaccept_queue&apos;s spinlocks once.Fixes: fff1f3001cc5 (&quot;tcp: add a spinlock to protect struct request_sock_queue&quot;)Fixes: 168a8f58059a (&quot;tcp: TCP Fast Open Server - main code path&quot;)Reported-by: Ming Shu &lt;sming56@aliyun.com&gt;Signed-off-by: Zhengchao Shao &lt;shaozhengchao@huawei.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://lore.kernel.org/r/20240118012019.1751966-1-shaozhengchao@huawei.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Thu, 18 Jan 2024 01:20:19 +0000</pubDate>
        <dc:creator>Zhengchao Shao &lt;shaozhengchao@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>e57a3447 - ipv6: drop feature RTAX_FEATURE_ALLFRAG</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#e57a3447</link>
        <description>ipv6: drop feature RTAX_FEATURE_ALLFRAGRTAX_FEATURE_ALLFRAG was added before the first git commit:https://www.mail-archive.com/bk-commits-head@vger.kernel.org/msg03399.htmlThe feature would send packets to the fragmentation path if a boxreceives a PMTU value with less than 1280 byte. However, since commit9d289715eb5c (&quot;ipv6: stop sending PTB packets for MTU &lt; 1280&quot;), suchmessage would be simply discarded. The feature flag is neither supportedin iproute2 utility. In theory one can still manipulate it with directnetlink message, but it is not ideal because it was based on obsoletedguidance of RFC-2460 (replaced by RFC-8200).The feature would always test false at the moment, so remove relatedcode or mark them as unused.Signed-off-by: Yan Zhai &lt;yan@cloudflare.com&gt;Reviewed-by: Florian Westphal &lt;fw@strlen.de&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Link: https://lore.kernel.org/r/d78e44dcd9968a252143ffe78460446476a472a1.1698156966.git.yan@cloudflare.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Tue, 24 Oct 2023 14:26:33 +0000</pubDate>
        <dc:creator>Yan Zhai &lt;yan@cloudflare.com&gt;</dc:creator>
    </item>
<item>
        <title>562b1fdf - tcp: Set pingpong threshold via sysctl</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#562b1fdf</link>
        <description>tcp: Set pingpong threshold via sysctlTCP pingpong threshold is 1 by default. But some applications, like SQL DBmay prefer a higher pingpong threshold to activate delayed acks in quickack mode for better performance.The pingpong threshold and related code were changed to 3 in the year2019 in:  commit 4a41f453bedf (&quot;tcp: change pingpong threshold to 3&quot;)And reverted to 1 in the year 2022 in:  commit 4d8f24eeedc5 (&quot;Revert &quot;tcp: change pingpong threshold to 3&quot;&quot;)There is no single value that fits all applications.Add net.ipv4.tcp_pingpong_thresh sysctl tunable, so it can be tuned foroptimal performance based on the application needs.Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Acked-by: Neal Cardwell &lt;ncardwell@google.com&gt;Reviewed-by: Kuniyuki Iwashima &lt;kuniyu@amazon.com&gt;Link: https://lore.kernel.org/r/1697056244-21888-1-git-send-email-haiyangz@microsoft.comSigned-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Wed, 11 Oct 2023 20:30:44 +0000</pubDate>
        <dc:creator>Haiyang Zhang &lt;haiyangz@microsoft.com&gt;</dc:creator>
    </item>
<item>
        <title>95b9a87c - tcp: record last received ipv6 flowlabel</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#95b9a87c</link>
        <description>tcp: record last received ipv6 flowlabelIn order to better estimate whether a data packet has beenretransmitted or is the result of a TLP, we save the last receivedipv6 flowlabel.To make space for this field we resize the &quot;ato&quot; field ininet_connection_sock as the current value of TCP_DELACK_MAX can befully contained in 8 bits and add a compile_time_assert ensuring thisfield is the required size.v2: addressed kernel bot feedback about dccp_delack_timer()v3: addressed build error introduced by commit bbf80d713fe7 (&quot;tcp:derive delack_max from rto_min&quot;)Signed-off-by: David Morley &lt;morleyd@google.com&gt;Signed-off-by: Neal Cardwell &lt;ncardwell@google.com&gt;Signed-off-by: Yuchung Cheng &lt;ycheng@google.com&gt;Tested-by: David Morley &lt;morleyd@google.com&gt;Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Fri, 06 Oct 2023 01:18:40 +0000</pubDate>
        <dc:creator>David Morley &lt;morleyd@google.com&gt;</dc:creator>
    </item>
<item>
        <title>b1c0356a - inet: move inet-&gt;is_icsk to inet-&gt;inet_flags</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/include/net/inet_connection_sock.h#b1c0356a</link>
        <description>inet: move inet-&gt;is_icsk to inet-&gt;inet_flagsWe move single bit fields to inet-&gt;inet_flags to avoid races.Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;Acked-by: Soheil Hassas Yeganeh &lt;soheil@google.com&gt;Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

            List of files:
            /linux-6.15/include/net/inet_connection_sock.h</description>
        <pubDate>Wed, 16 Aug 2023 08:15:42 +0000</pubDate>
        <dc:creator>Eric Dumazet &lt;edumazet@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
