From nobody Tue Dec 2 01:50:44 2025 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 9059D2F5462 for ; Fri, 21 Nov 2025 05:44:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763703898; cv=none; b=OIXrVdZGfmGCKdNEO0fMKWuv+REpgj2A8yKKlAbYQ7FijGTB/ygM9n8t9fS99HX+nWskE0Q4m0EklZPmrhpxPhhdtldqtsrqhDmhIbuzhUEdyBynwuKK+ZOKpaFqpWL7w81XDsm2pk5bZSlhnW5C6iVFOpXHRMk8nd8po1HB/zo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763703898; c=relaxed/simple; bh=fsBBb11rRzR4Q5pi4KL2AyZQEMokJCJhZHnuBGJ1xhw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RhEJZ9h1OneHIobpDqfkuEaeEdGlgGqRi2EPaNeLhIO5xoefvnYFHaMDdm+/F4RWXQTh5FT/lUKc0qicT3rItLly/dAj9zV7exoR2U15qyItsVn6oiK67w7ovAbw3lRxyDxEi3VvWf0Bpdy5sU6aAZOr35MLBF1EMfNi7W8kwv4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MXufHc81; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MXufHc81" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-297e264528aso19225805ad.2 for ; Thu, 20 Nov 2025 21:44:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763703895; x=1764308695; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=eC15iyYiDR+Sm1hgPKilCqyF6DXQAH/mQRgGwIW2dVA=; b=MXufHc81htKDHR7hx8nYgiZlT38+9IgO7C4G60UdU10UUhHbf52nM8xsEDkWKCBpXb V64BVPkWwlazJqRjDdgCrTU5Y5azVDuXb5NKbB6xFYRJZyyN2KLWy4UwZq2x3m0vvZFv FkxAANDMxYd/cX+Ii9bZbVczvZu2mmuAPPk16ZcvuESlysO1/8c88waTD7HrFlX0VQvN wRriWddBaOh9akp8C3IIvbPsN/sZj7UxM4Hv+LD6y1fdDh8nc2OMMNvGZhS5JWCD7F01 Y8wc7K51GjxvujTsz8tt9wFRdfOLeXo2Ga9k/fSrdt9SUkhb1BL64WmtDpvzHDps23VQ 1L6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763703895; x=1764308695; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=eC15iyYiDR+Sm1hgPKilCqyF6DXQAH/mQRgGwIW2dVA=; b=nSL7+VtWPx6ZRljx9shfJX00SX5GvU7Tgy19JP/uIkVLYD2fhSbGUVMrXKGThqxwz+ 4/ry9Sof8TP8xKCl/y8d8IQfUI6lKMGKnBrwRTQKgZqDlpKb2u7/lL2mPQOcnqHqvmdc 4myuzDWZ5cpUTjJRmqbjDbdWf6SrjS125IuW6hwMT2ymdvcKDY4OWlFOLP555Qpmyeri K+BDq22/kkmrECk1FWhpjBmEYPRbBDKBJ0fXhXq58+ql0Az5YhDZAnNJ2MLVk5jvwBn0 ly0u3FhIIi5ekSsOhccFeQiCJR9c5Qido0WiuUwdYPODLhABPLDrGZdIZ1BFP7x6cwV8 8E/w== X-Gm-Message-State: AOJu0YzTWQ1MpSvaOY23lRVI/6re/1L3uGJVMm8v91UgwukHp8ZnGbcs jVhZWZiccLR3xYzLHMdWTE/PHa18raBrZt8PSRuIloMZYrP8YOP/Z8ik X-Gm-Gg: ASbGncuRMSeyMNAdPt1F/3TAm2B2CKe0tTpa8vpPB0/jV3tnU5I9nVwsX3RuN++oYQf /BJxgCmFYVN9GN2LNtH1Z6XoK2iAkS0uJgdaFw3EhRpJKzhV6aTFO+3I6wGrXyjQr6lZqz7lxz/ SsWUHtLViwASTKyuLUPdNfFdsJrlCqbxsCwF3HzuiioBdFmvrySDNftg/KZKB5FK/EaBJp8otNn xWaluQbpqAQytlshxWz4jLHnXsfoC5fMWNi5/ZZvOcHPf04sNDevDfKRKhEkXEfXHXZ5Zg8GgA0 Ep4Su/y/PHscB6GzfFv2Ni6JvD/PvEHnerlIxlif4FZ08+yK1Sc/T8eS4KLOJ9O4TPYxDV4U8DD DSg5jEhnu3uzrlFKtsgH5m+HeBYgjBbNJYGfXODw9v6tl6im4Ep28w5F/BuZ83BLGpPh75DrhhK h9m7Vhz0UXyG04Id1Q X-Google-Smtp-Source: AGHT+IGa+OjNw6ZNUabNVrbiRm1cN34zeqSyarDkZ/uyC1wiDWIlKAxvnZ18+6IgwXZkACrQhhBeIQ== X-Received: by 2002:a17:903:2acc:b0:298:efa:511f with SMTP id d9443c01a7336-29b6bf3bc9emr17507735ad.39.1763703894492; Thu, 20 Nov 2025 21:44:54 -0800 (PST) Received: from localhost ([2a03:2880:2ff::]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29b5b13a870sm44383905ad.34.2025.11.20.21.44.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 21:44:54 -0800 (PST) From: Bobby Eshleman Date: Thu, 20 Nov 2025 21:44:36 -0800 Subject: [PATCH net-next v11 04/13] virtio: set skb owner of virtio_transport_reset_no_sock() reply Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251120-vsock-vmtest-v11-4-55cbc80249a7@meta.com> References: <20251120-vsock-vmtest-v11-0-55cbc80249a7@meta.com> In-Reply-To: <20251120-vsock-vmtest-v11-0-55cbc80249a7@meta.com> To: Stefano Garzarella , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Stefan Hajnoczi , "Michael S. Tsirkin" , Jason Wang , =?utf-8?q?Eugenio_P=C3=A9rez?= , Xuan Zhuo , "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , Dexuan Cui , Bryan Tan , Vishnu Dasa , Broadcom internal kernel review list , Shuah Khan Cc: linux-kernel@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, kvm@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-kselftest@vger.kernel.org, berrange@redhat.com, Sargun Dhillon , Bobby Eshleman , Bobby Eshleman X-Mailer: b4 0.14.3 From: Bobby Eshleman Associate reply packets with the sending socket. When vsock must reply with an RST packet and there exists a sending socket (e.g., for loopback), setting the skb owner to the socket correctly handles reference counting between the skb and sk (i.e., the sk stays alive until the skb is freed). This allows the net namespace to be used for socket lookups for the duration of the reply skb's lifetime, preventing race conditions between the namespace lifecycle and vsock socket search using the namespace pointer. Signed-off-by: Bobby Eshleman Reviewed-by: Stefano Garzarella --- Changes in v11: - move before adding to netns support (Stefano) Changes in v10: - break this out into its own patch for easy revert (Stefano) --- net/vmw_vsock/virtio_transport_common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio= _transport_common.c index dcc8a1d5851e..675eb9d83549 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c @@ -1165,6 +1165,12 @@ static int virtio_transport_reset_no_sock(const stru= ct virtio_transport *t, .op =3D VIRTIO_VSOCK_OP_RST, .type =3D le16_to_cpu(hdr->type), .reply =3D true, + + /* Set sk owner to socket we are replying to (may be NULL for + * non-loopback). This keeps a reference to the sock and + * sock_net(sk) until the reply skb is freed. + */ + .vsk =3D vsock_sk(skb->sk), }; struct sk_buff *reply; =20 --=20 2.47.3