From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 662723DB336 for ; Mon, 10 Aug 2026 13:14:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.71 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786367654; cv=none; b=EIUCF5TnzM0GFjNWkknjodjrWIhqDmTgP/jxUvYfD4AsPcdZx3ci5Bkd7innRqD3DA5wyvMmDFr00DePyKjH2Egpfa04XEzsLFNFt+w37J5VDKkVYAa/slJTrXMUnf2ta8WBJj0t4TEQdAypeabfIXeXdMlrVeYLAoNhy+GomeE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786367654; c=relaxed/simple; bh=bHIpA2g1AU4x4VaFzVtaRChuCJ7+rasjpNtZMc4L+is=; h=MIME-Version:Date:In-Reply-To:Message-ID:Subject:From:To: Content-Type; b=S+vG0aAq0t+6zdJ+FgAJ59Bpe6B8tU2veGlbsn5E4PKCWy5Xr9xNmOYY6muLFHOtxvsnczBqS/yqCM+oj841l0T3uH3UG0WWalt9gSC/cqh0y18SF4yuttyEzOpoJVEDniJA89SmAfEO8X+ZZXfUuOITVciLziw9hDZjIZd8ByI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=syzkaller.appspotmail.com; spf=pass smtp.mailfrom=M3KW2WVRGUFZ5GODRSRYTGD7.apphosting.bounces.google.com; arc=none smtp.client-ip=209.85.210.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=syzkaller.appspotmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=M3KW2WVRGUFZ5GODRSRYTGD7.apphosting.bounces.google.com Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7ebe970a21fso2022396a34.2 for ; Mon, 10 Aug 2026 06:14:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786367651; x=1786972451; h=content-type:to:from:subject:message-id:in-reply-to:date :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=X7snml8680nmadE0uOp4OEvAatic8L+tTFsCBlOCkRY=; b=Xrr6bVohw7+ILz8W+5zSzYyLLzVwbyYgovhdh7l46JuGFYrxjMksEVFGF6L3Hh9FGR gik5RQvbp+rjMpBcR9J48JNgGScksJ857WIV1C6hVq+xPs+JMlZkK9OZzSRLzLEzK9oz h559unDYLp+1EaNkqTaWqlTi56V3OMWHK7UC33RBwJJLGbNcfKvPD41LEmM+5CiGMuZC MfCJB0H4qkiFVyaMpWOvMboB/UIlDcC2/eLzoCiqw7zxZY2Qybh5s27KS8G6cYov5HMN 7HtjFPon7YJle+3HWfcCS5DNOlRsptmIXVskRTycp7Sct980EPKZB8HNFM7B2Q+AN8jG ft1w== X-Gm-Message-State: AOJu0YzkksgdFnVyqw+jUR7f2i1fPLLQSpnorboJiY4oPA0ATq3i6pk2 d/QVbFdgyDxGEsZ6fQbnkymZrhpt+UMdd0dF6DvF6Z4TlI8RY9CdZamDANblbeE05DyPXqA0d96 mmORuqH3zgGP6byWcVxh+ZkcArrzCICctwlBraZtXZ9r/4xPT5Dqx7cZYzYY= Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Received: by 2002:a05:6820:8590:20b0:6b0:41f9:361d with SMTP id 006d021491bc7-6b041f939a3mr7647630eaf.20.1786367651317; Mon, 10 Aug 2026 06:14:11 -0700 (PDT) Date: Mon, 10 Aug 2026 06:14:11 -0700 In-Reply-To: <000000000000bb900e061440909c@google.com> X-Google-Appengine-App-Id: s~syzkaller X-Google-Appengine-App-Id-Alias: syzkaller Message-ID: <6a79cea3.b50370da.49fe0.0053.GAE@google.com> Subject: Forwarded: Re: [syzbot] [tipc?] BUG: soft lockup in do_sock_setsockopt From: syzbot To: linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com Content-Type: text/plain; charset="UTF-8" For archival purposes, forwarding an incoming command email to linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com. *** Subject: Re: [syzbot] [tipc?] BUG: soft lockup in do_sock_setsockopt Author: immersa.bartosz.chronowski@gmail.com #syz test: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a13307e97d5c54b65720bb71fa379960ded1e51a diff --git a/net/tipc/socket.c b/net/tipc/socket.c index d5d70eb230b5..f3c4bccaadc8 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -156,7 +156,8 @@ static int tipc_sk_insert(struct tipc_sock *tsk); static void tipc_sk_remove(struct tipc_sock *tsk); static int __tipc_sendstream(struct socket *sock, struct msghdr *m, size_t dsz); static int __tipc_sendmsg(struct socket *sock, struct msghdr *m, size_t dsz); -static void tipc_sk_push_backlog(struct tipc_sock *tsk, bool nagle_ack); +static void tipc_sk_push_backlog(struct tipc_sock *tsk, bool nagle_ack, + struct sk_buff_head *xmitq); static int tipc_wait_for_connect(struct socket *sock, long *timeo_p); static const struct proto_ops packet_ops; @@ -561,7 +562,7 @@ static void __tipc_shutdown(struct socket *sock, int error) !tsk_conn_cong(tsk))); /* Push out delayed messages if in Nagle mode */ - tipc_sk_push_backlog(tsk, false); + tipc_sk_push_backlog(tsk, false, NULL); /* Remove pending SYN */ __skb_queue_purge(&sk->sk_write_queue); @@ -1268,8 +1269,10 @@ void tipc_sk_mcast_rcv(struct net *net, struct sk_buff_head *arrvq, /* tipc_sk_push_backlog(): send accumulated buffers in socket write queue * when socket is in Nagle mode + * @xmitq: receive output queue, or NULL outside receive context */ -static void tipc_sk_push_backlog(struct tipc_sock *tsk, bool nagle_ack) +static void tipc_sk_push_backlog(struct tipc_sock *tsk, bool nagle_ack, + struct sk_buff_head *xmitq) { struct sk_buff_head *txq = &tsk->sk.sk_write_queue; struct sk_buff *skb = skb_peek_tail(txq); @@ -1311,6 +1314,10 @@ static void tipc_sk_push_backlog(struct tipc_sock *tsk, bool nagle_ack) tsk->pkt_cnt += skb_queue_len(txq); tsk->snt_unacked += tsk->snd_backlog; tsk->snd_backlog = 0; + if (xmitq && in_own_node(net, dnode)) { + skb_queue_splice_tail_init(txq, xmitq); + return; + } rc = tipc_node_xmit(net, txq, dnode, tsk->portid); if (rc == -ELINKCONG) tsk->cong_link_cnt = 1; @@ -1368,7 +1375,7 @@ static void tipc_sk_conn_proto_rcv(struct tipc_sock *tsk, struct sk_buff *skb, goto exit; was_cong = tsk_conn_cong(tsk); - tipc_sk_push_backlog(tsk, msg_nagle_ack(hdr)); + tipc_sk_push_backlog(tsk, msg_nagle_ack(hdr), xmitq); tsk->snt_unacked -= msg_conn_ack(hdr); if (tsk->peer_caps & TIPC_BLOCK_FLOWCTL) tsk->snd_win = msg_adv_win(hdr); @@ -2166,7 +2173,7 @@ static void tipc_sk_proto_rcv(struct sock *sk, smp_wmb(); tsk->cong_link_cnt--; wakeup = true; - tipc_sk_push_backlog(tsk, false); + tipc_sk_push_backlog(tsk, false, xmitq); break; case GROUP_PROTOCOL: tipc_group_proto_rcv(grp, &wakeup, hdr, inputq, xmitq); @@ -2257,7 +2264,7 @@ static bool tipc_sk_filter_connect(struct tipc_sock *tsk, struct sk_buff *skb, return false; case TIPC_ESTABLISHED: if (!skb_queue_empty(&sk->sk_write_queue)) - tipc_sk_push_backlog(tsk, false); + tipc_sk_push_backlog(tsk, false, xmitq); /* Accept only connection-based messages sent by peer */ if (likely(con_msg && !err && pport == oport && pnode == onode)) {