Message ID | 003589e3dce1ed8d9b9970bbf8ed1661ced8d2cc.camel@redhat.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | Re: INFO: task hung in lock_sock_nested (3) | expand |
Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-and-tested-by: syzbot+fcf8ca5817d6e92c6567@syzkaller.appspotmail.com Tested on: commit: f4f9dcc3 net: phy: marvell: Use phy_read_paged() instead o.. git tree: net-next kernel config: https://syzkaller.appspot.com/x/.config?x=1e6c5266df853ae dashboard link: https://syzkaller.appspot.com/bug?extid=fcf8ca5817d6e92c6567 compiler: gcc (GCC) 10.1.0-syz 20200507 patch: https://syzkaller.appspot.com/x/patch.diff?x=14f6da57900000 Note: testing is done by a robot and is best-effort only.
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index f483eab0081a..42928db28351 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -471,8 +471,15 @@ static bool __mptcp_move_skbs_from_subflow(struct mptcp_sock *msk, mptcp_subflow_get_map_offset(subflow); skb = skb_peek(&ssk->sk_receive_queue); - if (!skb) + if (!skb) { + /* if no data is found, a racing workqueue/recvmsg + * already processed the new data, stop here or we + * can enter an infinite loop + */ + if (!moved) + done = true; break; + } if (__mptcp_check_fallback(msk)) { /* if we are running under the workqueue, TCP could have