From patchwork Tue Feb 11 07:19:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junnan Wu X-Patchwork-Id: 13970136 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A88B71EDA04 for ; Tue, 11 Feb 2025 07:23:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739258611; cv=none; b=EGyMQQRTpRJ1Uiq0jpGQIykkzRYQ2YDQ1K2yrqA6LosU+N0j+pQRIZjQsTemWXXOjkl0THKwK1reFz1HFnJWCyoIT/INiO7mPtspla3elwGyf3LOHHgXdW6uLj7e3XMUj3niSFxNVaPUPFAH843JDHq15L31NS/uAPR3CqsHjq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739258611; c=relaxed/simple; bh=92f3+0RBOUMWYn5GM2mPefl+n3IpS+jV8ykj5futLfo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=WfMY4KRrprhc3+vZ7x6QOFmALALBi46GkiX7eIMMVUb+iudf8LcuAOKDTa77T9/RGqSoKclya7cs3t4Fw+skILo/dxQzEA7rYj9e8DCebCC/ABiZmNqHXI1nq3EyT3yEBNJmw1XxvO6xQ00szdUT4uCmPK9IJH3qFDA9tG3q0eg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=utN2ObWg; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="utN2ObWg" Received: from epcas5p3.samsung.com (unknown [182.195.41.41]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20250211072321epoutp02a0ea25ba6873aebba7f8c269472eaae2~jFnuOUXRx1780217802epoutp02e for ; Tue, 11 Feb 2025 07:23:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20250211072321epoutp02a0ea25ba6873aebba7f8c269472eaae2~jFnuOUXRx1780217802epoutp02e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1739258601; bh=cqWyoyjcojczVymuxqFKCi8tbnQu4vhX9fzr84A8Q98=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=utN2ObWgVgdp9qtI9MNhpO+81PNVt/if4nWYq3Ukz60xMNHSwdYRsY5dcvMycXk2O iRjSD2Ql/jmmtqeWnJgN7QjiougfGdmTtfjLFx/3ktA44FKUU2If9dciJmyuxmtten UKfAIf1a0KBRR7LvyL+4TkWtv7LXfEYgA1rLridY= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20250211072320epcas5p1db2e22adb0ac79aaf423a1aad1a69edc~jFntu0T_y0209902099epcas5p1s; Tue, 11 Feb 2025 07:23:20 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.178]) by epsnrtp2.localdomain (Postfix) with ESMTP id 4YsXwk1x2hz4x9Q9; Tue, 11 Feb 2025 07:23:18 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 12.D9.20052.6EAFAA76; Tue, 11 Feb 2025 16:23:18 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20250211071941epcas5p308a13898102cf851bc9988c0e2766c5e~jFkiB3tyK2383023830epcas5p3_; Tue, 11 Feb 2025 07:19:41 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250211071941epsmtrp23491956d55b1bb2cbddf4dccbbd7c004~jFkiAxTf20103201032epsmtrp2_; Tue, 11 Feb 2025 07:19:41 +0000 (GMT) X-AuditID: b6c32a49-3d20270000004e54-54-67aafae64171 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 56.DE.18729.D0AFAA76; Tue, 11 Feb 2025 16:19:41 +0900 (KST) Received: from asg29.. (unknown [109.105.129.29]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20250211071938epsmtip1d1635c3ad7f2a04d629821b117d3b7a4~jFke9gp1p1180211802epsmtip1Q; Tue, 11 Feb 2025 07:19:38 +0000 (GMT) From: Junnan Wu To: stefanha@redhat.com, sgarzare@redhat.com, mst@redhat.com, jasowang@redhat.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: xuanzhuo@linux.alibaba.com, eperezma@redhat.com, horms@kernel.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, q1.huang@samsung.com, ying01.gao@samsung.com, ying123.xu@samsung.com, lei19.wang@samsung.com, Junnan Wu Subject: [Patch net 1/2] vsock/virtio: initialize rx_buf_nr and rx_buf_max_nr when resuming Date: Tue, 11 Feb 2025 15:19:21 +0800 Message-Id: <20250211071922.2311873-2-junnan01.wu@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250211071922.2311873-1-junnan01.wu@samsung.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCJsWRmVeSWpSXmKPExsWy7bCmhu6zX6vSDab1cFjMOd/CYvH02CN2 i8dzV7JbPOo/wWax7NJnJou719wtLmzrY7WYM7XQom3HZVaLy7vmsFlcWdLDbvH/1ytWi2ML xCy+nX7DaLH07Vlmi7MTPrBanJ/zn9ni9aT/rBZHt69ktbjWZGFx4QjQ1P2PZrI6iHlsWXmT yWPBplKPTas62Tx2PrT0eLF5JqPH+31X2Tz6tqxi9Pi8SS6AIyrbJiM1MSW1SCE1Lzk/JTMv 3VbJOzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwfoNSWFssScUqBQQGJxsZK+nU1RfmlJ qkJGfnGJrVJqQUpOgUmBXnFibnFpXrpeXmqJlaGBgZEpUGFCdsb/9uOsBUf5K+bd2MfcwDiB t4uRk0NCwETiyI03jF2MXBxCArsZJWZ032GGcD4xStyasooJwvkG5HR+ZYdpmdzfBGYLCexl lLhxKg6i6BmjxNO3D5lAEmwCmhIn9qxgA0mICCxmlDi/4isriMMssJtJYuGtz4wgVcICsRLn vq8Hs1kEVCVO3F7PCmLzCthJPDz9ixVinbzE/oNnmUFsTgF7iSsztrFD1AhKnJz5hAXEZgaq ad46G+xwCYEHHBLLF26DutVFYuHxO1CDhCVeHd8CFZeS+PxuLxuEnS3Re/QXlF0i0f3uElS9 tcT5de1AQzmAFmhKrN+lDxGWlZh6ah0TxF4+id7fT5gg4rwSO+aB2BxAtqrE+wk1EGFpiZWb NrFDhD0kZky0gwTWJEaJt0vfME5gVJiF5JtZSL6ZhbB4ASPzKkbJ1ILi3PTUYtMCw7zUcngs J+fnbmIEJ3ctzx2Mdx980DvEyMTBeIhRgoNZSYTXZOGKdCHelMTKqtSi/Pii0pzU4kOMpsDg nsgsJZqcD8wveSXxhiaWBiZmZmYmlsZmhkrivM07W9KFBNITS1KzU1MLUotg+pg4OKUamNTq n1kcV53oVtUYvmBrdEZu+/TJuvnOKy77TqvpNeZNzYzVnx9xxdyITeqnlY+DyZ/JsupcP3tC tc5NOGpVHl6dPk/wqm9tydsd4r8XycRs4NrCtvn6oun7/1bv/qa+re14p9fK/9Hij5h1svps zPtqA7516t7ezeqVtsJZWSFNymll6sfn08492TRHR8HZe8bJJUwyvIeD91htmmUVsmF64LW7 03dqbJC7Ps/jcSBnf09/glfyzr+n6qqYVgn76/hzlUTbSZZv+ZRfOIc5YEb+moh5hXPaz/xe fPvv8m6uxcubNii7yTlLeTIsXnLmlpTzNwO2yG52gXaB6x2pktPffVsluWfZU4UOlT9/lFiK MxINtZiLihMB/yiRoHcEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDIsWRmVeSWpSXmKPExsWy7bCSnC7vr1XpBjc+qlvMOd/CYvH02CN2 i8dzV7JbPOo/wWax7NJnJou719wtLmzrY7WYM7XQom3HZVaLy7vmsFlcWdLDbvH/1ytWi2ML xCy+nX7DaLH07Vlmi7MTPrBanJ/zn9ni9aT/rBZHt69ktbjWZGFx4QjQ1P2PZrI6iHlsWXmT yWPBplKPTas62Tx2PrT0eLF5JqPH+31X2Tz6tqxi9Pi8SS6AI4rLJiU1J7MstUjfLoEr43/7 cdaCo/wV827sY25gnMDbxcjJISFgIjG5v4m9i5GLQ0hgN6PEmzkPWCAS0hJdv9uYIWxhiZX/ nkMVPWGUmLh2BStIgk1AU+LEnhVsILaIwFpGiU37DEGKmAVOMkncmjEBrFtYIFri7fMzYDaL gKrEidvrwZp5BewkHp7+xQqxQV5i/8GzYDWcAvYSV2ZsYwexhYBqds1fxgJRLyhxcuYTMJsZ qL5562zmCYwCs5CkZiFJLWBkWsUomVpQnJueW2xYYJiXWq5XnJhbXJqXrpecn7uJERyBWpo7 GLev+qB3iJGJg/EQowQHs5IIr8nCFelCvCmJlVWpRfnxRaU5qcWHGKU5WJTEecVf9KYICaQn lqRmp6YWpBbBZJk4OKUamNKO3NyV1Xy1MSHwdU6w8UqFnTeP9vgc0F272zasU/SF5tnazw8X 7P1xQfHUm63GIXPudHYuPnh61j4juXk1rGLvv+cFzNXJj9E7O3PdxHtT79joGiVH7eL0OTv9 bej3Lx/+Ljz/Oe8g6w6f/3e9CwueR1c23rrxrDpgdtlTPZFQvXcykw6pLrWK+fNg8f+vlr7B d9iZztS2Ln4qIXhc6Y5e4/qo1X2zhJqTN11I2v56RWhcuHJurwdLT2ep1YakLK6w7bFC5RK3 hSPc/h1Uayqom1zwwjkzQ+PqxsqXR+saI7gDE84z/67QWpRZ3BfmNOt8/q1ijoD5u2sE1Y3O tPtM1c5JEDvgv+TrGsG4OiWW4oxEQy3mouJEAJdyMKMvAwAA X-CMS-MailID: 20250211071941epcas5p308a13898102cf851bc9988c0e2766c5e X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250211071941epcas5p308a13898102cf851bc9988c0e2766c5e References: <20250211071922.2311873-1-junnan01.wu@samsung.com> When executing suspend to ram twice in a row, the `rx_buf_nr` and `rx_buf_max_nr` increase to three times vq->num_free. Then after virtqueue_get_buf and `rx_buf_nr` decreased in function virtio_transport_rx_work, the condition to fill rx buffer (rx_buf_nr < rx_buf_max_nr / 2) will never be met. It is because that `rx_buf_nr` and `rx_buf_max_nr` are initialized only in virtio_vsock_probe(), but they should be reset whenever virtqueues are recreated, like after a suspend/resume. Move the `rx_buf_nr` and `rx_buf_max_nr` initialization in virtio_vsock_vqs_init(), so we are sure that they are properly initialized, every time we initialize the virtqueues, either when we load the driver or after a suspend/resume. At the same time, also move `queued_replies`. Fixes: bd50c5dc182b ("vsock/virtio: add support for device suspend/resume") Co-developed-by: Ying Gao Signed-off-by: Ying Gao Signed-off-by: Junnan Wu --- net/vmw_vsock/virtio_transport.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c index b58c3818f284..f0e48e6911fc 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -670,6 +670,13 @@ static int virtio_vsock_vqs_init(struct virtio_vsock *vsock) }; int ret; + mutex_lock(&vsock->rx_lock); + vsock->rx_buf_nr = 0; + vsock->rx_buf_max_nr = 0; + mutex_unlock(&vsock->rx_lock); + + atomic_set(&vsock->queued_replies, 0); + ret = virtio_find_vqs(vdev, VSOCK_VQ_MAX, vsock->vqs, vqs_info, NULL); if (ret < 0) return ret; @@ -779,9 +786,6 @@ static int virtio_vsock_probe(struct virtio_device *vdev) vsock->vdev = vdev; - vsock->rx_buf_nr = 0; - vsock->rx_buf_max_nr = 0; - atomic_set(&vsock->queued_replies, 0); mutex_init(&vsock->tx_lock); mutex_init(&vsock->rx_lock); From patchwork Tue Feb 11 07:19:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junnan Wu X-Patchwork-Id: 13970137 Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 495291EBA08 for ; Tue, 11 Feb 2025 07:23:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.254.224.25 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739258614; cv=none; b=mwivf0kpWktdTu80xOm2DJK5bjyh8EC90gBGcQddVrmM9sO/MMrp+Bv4wQ0NtHcDSZ8UCP1Jdmb74XLAMDOKNPzCTY6j1RThwGp+Ixsk5/m8Mvw8BFj0miWvh8oqjP3N4L7sk1VA9rI2bAT710wkXHTD6PZ7dSe8NFnUKYydqdE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739258614; c=relaxed/simple; bh=awKoYhrVzwDw7hkf/6J7btjKvL1OaAde+egvZ6yaW7M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=nbOzDQuIG+T8y8ucPmtZHhbJarEbp0ViVMXQq7tYn2cn23Qc/wVnuHz12tXNIl7mAvf2ZM6JCXTrNnOs/JPkbQVb6e0NdSYzQRGJ+S/wM+MV4/OnKCxW7tSq/GSFTJq15n3haLF3j2Q7w/bJBqztwnJJsaCPg8WhMNa7ABzuGEw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=nn7Pjwxs; arc=none smtp.client-ip=203.254.224.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="nn7Pjwxs" Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20250211072325epoutp02745029068f2fd8ee028da988a9437463~jFnyFeFXg1886918869epoutp02N for ; Tue, 11 Feb 2025 07:23:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20250211072325epoutp02745029068f2fd8ee028da988a9437463~jFnyFeFXg1886918869epoutp02N DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1739258605; bh=KsiY07TAUV3nL0irkdKx8yriCajiaEpcxJeleGNxtA0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nn7PjwxsnXwFeDyMO2uTsTJZDf+rE2yQWdrikjBhXM3jOfQJjS6ItI5Y5wMpyNFI4 T40VkWr54np1haJOiGZURfaMqJEMdS//+PU5n5J/FTqgbf3vmK8nU6QkaPlGKoEpj6 fSrRW9zwPYlxUr85xXHJTgkDsPPZnaRYS7wpbByc= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas5p1.samsung.com (KnoxPortal) with ESMTP id 20250211072324epcas5p190436ac8ec622b4b6eeb618de31b22ad~jFnxSV7nx0260002600epcas5p1v; Tue, 11 Feb 2025 07:23:24 +0000 (GMT) Received: from epsmges5p1new.samsung.com (unknown [182.195.38.174]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4YsXwp6lgNz4x9Q1; Tue, 11 Feb 2025 07:23:22 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 88.D9.20052.AEAFAA76; Tue, 11 Feb 2025 16:23:22 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p3.samsung.com (KnoxPortal) with ESMTPA id 20250211071946epcas5p3c2afde3813ab81142e81cff110ab7afa~jFkmajpv92383023830epcas5p3D; Tue, 11 Feb 2025 07:19:46 +0000 (GMT) Received: from epsmgmcp1.samsung.com (unknown [182.195.42.82]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250211071946epsmtrp2e7f321ea44be836632a869c1fea55d39~jFkmXAwpX0103201032epsmtrp2O; Tue, 11 Feb 2025 07:19:46 +0000 (GMT) X-AuditID: b6c32a49-3fffd70000004e54-61-67aafaeaa887 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgmcp1.samsung.com (Symantec Messaging Gateway) with SMTP id 06.57.33707.21AFAA76; Tue, 11 Feb 2025 16:19:46 +0900 (KST) Received: from asg29.. (unknown [109.105.129.29]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20250211071942epsmtip1050923bde20eeca0be4070f3f06793b6~jFki7bCav1180211802epsmtip1T; Tue, 11 Feb 2025 07:19:42 +0000 (GMT) From: Junnan Wu To: stefanha@redhat.com, sgarzare@redhat.com, mst@redhat.com, jasowang@redhat.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: xuanzhuo@linux.alibaba.com, eperezma@redhat.com, horms@kernel.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, q1.huang@samsung.com, ying01.gao@samsung.com, ying123.xu@samsung.com, lei19.wang@samsung.com, Junnan Wu Subject: [Patch net 2/2] vsock/virtio: Don't reset the created SOCKET during suspend to ram Date: Tue, 11 Feb 2025 15:19:22 +0800 Message-Id: <20250211071922.2311873-3-junnan01.wu@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250211071922.2311873-1-junnan01.wu@samsung.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01Te0xbVRz23NvbXggdd4DjjMVZmxFHGYxii4cJOB2Ryx4GMjWLxpQrXAqB 3tY+3DSYMF7jIc8IAmPI3CMUyYilQxgbZGy8qggbDEEEAWEuMAYbiAmGYF+b++/7fq/v950H iXvM833IZE7PajkmVcx35bXc8pMELGw0KIPauuWoZjCLh+Z7ZgXoz3NGAZot7uOjy3dXMTQ5 GoWGWooIVFP+KcppHSbQ8LUaPhq5+JUAbW0sEKinbgda/+khQJeWBnA0ULJCoMGaLRwtlm0R qPtHI4FGMxAaum2d2jlbRRzcQZuN4xhdZzLQpoY8Pt02E0o/aK4C9HLHPT5dZG4A9Kppdwz5 YUpYEssksFoRy8WrE5I5Zbj4yHHFIYU8JEgaIA1Fr4tFHKNiw8WRR2MC3klOtVoTiz5jUg3W UAyj04n3R4Rp1QY9K0pS6/ThYlaTkKqRaQJ1jEpn4JSBHKs/IA0KCpZbC+NSkuau5hOaSs9T HZ0/CNJBKZUPXEhIyWDGcCXIB66kB9UOYIUlj+8gTwDseJCOPyNPRtbB05acwlHMkWizJi40 Ocl9ABdKLDxbFZ/yg33X6+2zvKgLAA7W/03YCE61Y/D8b6v2WZ7UxzC/bAS3YR7lC7MnZwT5 gCSFVAQcvS5yyL0MO28O2EtcqDfhSGWLwIaF1HbYXzVnF8OtNZlXz9p3hdQ0CY0VZZijORIu T5U69/aEC71mgQP7wNVHN/gOnAILuzecWA8LHt0lHPgNOHjlDG7bB7e6abq23xF+CZZbrmAO 3W2w8N85p5QQttbaMGnFvnC5JM0R3gWNJpNTlYY/dw47D7sMwKGCEUEJEFU/Z6f6OTvV/yvX AbwB7GQ1OpWS1ck1Uo49+eya49UqE7C/d0l0K5icXgnsAhgJugAkcbGXUHa+XukhTGA+/4LV qhVaQyqr6wJy63GX4j4vxqutH4bTK6Sy0CBZSEiILPS1EKnYW5jZlqX0oJSMnk1hWQ2rfdqH kS4+6VhEQWN/E+Z+JCzz67i3XjUSrFDAGzwce+eXjN2a07Sv1JAWfcbXPOXXv8yLEgSfmKv+ pmNvvapFEdlrNvgf/1VZfMp8kLdrbPE98QnpuV6i1S3glWiN3x2u1m30xvT74y+sKxrNbFYp O++3+Zf3eOdl17jfYx6HWix7JAO5iVOX4s+ub/BrxyYet1R8e1L+7kfYdvPbD4vjElVuzUkT S4c+qe/OzbO4LLffPzqWW+71Zdxc/PrUzAeRKxX+NFPCuackHzudzU4MNG/LI7Il2VvB+3T/ fOchuvn9Xt8lbzp259p4WtSxe0O3e9fcL97C8vSJBxo1m7EBa5Kcvn3+m4s9RX+IebokRirB tTrmPwKjlRZ4BAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOIsWRmVeSWpSXmKPExsWy7bCSnK7Qr1XpBu/bRSzmnG9hsXh67BG7 xeO5K9ktHvWfYLNYdukzk8Xda+4WF7b1sVrMmVpo0bbjMqvF5V1z2CyuLOlht/j/6xWrxbEF YhbfTr9htFj69iyzxdkJH1gtzs/5z2zxetJ/Vouj21eyWlxrsrC4cARo6v5HM1kdxDy2rLzJ 5LFgU6nHplWdbB47H1p6vNg8k9Hj/b6rbB59W1YxenzeJBfAEcVlk5Kak1mWWqRvl8CV8WRr F2vBDOGKffs3sjcwThToYuTkkBAwkWjrvcbUxcjFISSwnVHiSNtbJoiEtETX7zZmCFtYYuW/ 5+wQRU8YJS5sXM0KkmAT0JQ4sWcFG4gtIrCWUWLTPkOQImaBk0wSt2ZMAOsWFoiWePN2OzuI zSKgKtF69yGQzcHBK2AncW2PAsQCeYn9B8+ClXMK2EtcmbENrFwIqGTX/GUsIDavgKDEyZlP wGxmoPrmrbOZJzAKzEKSmoUktYCRaRWjaGpBcW56bnKBoV5xYm5xaV66XnJ+7iZGcNxpBe1g XLb+r94hRiYOxkOMEhzMSiK8JgtXpAvxpiRWVqUW5ccXleakFh9ilOZgURLnVc7pTBESSE8s Sc1OTS1ILYLJMnFwSjUwCVxPSuIK+PRS5tWGc3azwi5EXLm9bo3WvU9vrJZJ7lBp7M96aPhU PCwjfPWFKKPtOW1x95ssZOdInF4k6HSiOmcRp3iTe2TBmb+8bU8Mf4TEbY90ML6j/0N6mebn jp6jy0PX/pZ4L/JwunDkGYM1H54LCr5/IZHz4M3UyKQ3Nzpq8zQ9H8XVX1xl7zQtSVame33t ko5cntNW521fBqiwqJmyTDNWDniUuzHiXNfPLS5Z3N/nplkJP665/qXxjAFHn+W9GfcTZ/xX rztdNov38MsF+plmnv5nd3tvt7/4/KcO83WL9euXrHi4pr3O6spqlZTOhX92u2nv8F22SkRl y8TXjJdv+xU7LKydwJfnqMRSnJFoqMVcVJwIADs3GXIqAwAA X-CMS-MailID: 20250211071946epcas5p3c2afde3813ab81142e81cff110ab7afa X-Msg-Generator: CA X-Sendblock-Type: REQ_APPROVE CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20250211071946epcas5p3c2afde3813ab81142e81cff110ab7afa References: <20250211071922.2311873-1-junnan01.wu@samsung.com> Function virtio_vsock_vqs_del will be invoked in 2 cases virtio_vsock_remove() and virtio_vsock_freeze(). And when driver freeze, the connected socket will be set to TCP_CLOSE and it will cause that socket can not be unusable after resume. Refactor function virtio_vsock_vqs_del to differentiate the 2 use cases. Co-developed-by: Ying Gao Signed-off-by: Ying Gao Signed-off-by: Junnan Wu Nacked-by: Stefano Garzarella --- net/vmw_vsock/virtio_transport.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c index f0e48e6911fc..909048c9069b 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -716,14 +716,20 @@ static void virtio_vsock_vqs_start(struct virtio_vsock *vsock) queue_work(virtio_vsock_workqueue, &vsock->send_pkt_work); } -static void virtio_vsock_vqs_del(struct virtio_vsock *vsock) +static void virtio_vsock_vqs_del(struct virtio_vsock *vsock, bool vsock_reset) { struct virtio_device *vdev = vsock->vdev; struct sk_buff *skb; - /* Reset all connected sockets when the VQs disappear */ - vsock_for_each_connected_socket(&virtio_transport.transport, - virtio_vsock_reset_sock); + /* When driver is removed, reset all connected + * sockets because the VQs disappear. + * When driver is just freezed, don't do that because the connected + * socket still need to use after restore. + */ + if (vsock_reset) { + vsock_for_each_connected_socket(&virtio_transport.transport, + virtio_vsock_reset_sock); + } /* Stop all work handlers to make sure no one is accessing the device, * so we can safely call virtio_reset_device(). @@ -831,7 +837,7 @@ static void virtio_vsock_remove(struct virtio_device *vdev) rcu_assign_pointer(the_virtio_vsock, NULL); synchronize_rcu(); - virtio_vsock_vqs_del(vsock); + virtio_vsock_vqs_del(vsock, true); /* Other works can be queued before 'config->del_vqs()', so we flush * all works before to free the vsock object to avoid use after free. @@ -856,7 +862,7 @@ static int virtio_vsock_freeze(struct virtio_device *vdev) rcu_assign_pointer(the_virtio_vsock, NULL); synchronize_rcu(); - virtio_vsock_vqs_del(vsock); + virtio_vsock_vqs_del(vsock, false); mutex_unlock(&the_virtio_vsock_mutex);