From nobody Fri Apr 17 00:17:20 2026 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) (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 09DE82C0285 for ; Wed, 25 Feb 2026 03:38:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.194 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990734; cv=none; b=gnXg7EzWgip7qYixS818eOW4ytjbYZVtJX5Mp43Z4XTcyiwdA3mCnwlS8GqVs9Y423NICp4+TJTfnDPFRbDjQg1qA5Rr3vWd1a9XXa0107QcxoO27Ybekw179cEV591PGumiA7zQALVHp7JbNBe5i6EKRM69+Q9h+o0Y0/umIIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990734; c=relaxed/simple; bh=UzebxA6/a7fg3sjOiWp/u7lzb1dFODtxX1sVJYsce3s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aJyJANEfOj3ERIX4EMHCpNt8vcifWbxp885PUoShEiZieauQHMYawIFqelgTPxirvujw1xFVuWYprJrOAjZCv+3gvF/fOjNrgG85c1RKbpqrwwm2hG6upkzxJebQIxi09oC9TJp/FcghAMdv5S04g+VqEmgnL0yR2eMMYzizLcI= 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=k6S3wZ3H; arc=none smtp.client-ip=209.85.215.194 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="k6S3wZ3H" Received: by mail-pg1-f194.google.com with SMTP id 41be03b00d2f7-c6e3e4e7388so2079228a12.1 for ; Tue, 24 Feb 2026 19:38:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771990731; x=1772595531; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JqCX+A7B/xYK3O+/EJk4ZtsIswe0wWdZp+sEMdt10Pc=; b=k6S3wZ3H77CAxACFcz+o72T6A6R+BsHZBrvPdcvF7tvFLxxp+fSNCau7O67NC9Ve95 1yKvbrnImEVYaubbGKPND4duldzGqHnxm9KJHzlnoaPc1634VPnoN5MkBwWc1rjhEXBF 57aZyVNEXB5s50xJupBvdv7xvBCPgtVJIpiQQXN5+aSZ8ImqM2ZkUJHpAZXx9vh64jqh e4rG+hBhdR19sJgWdhhjlnEHzM2SXDJn7s0HxAIJEqtt4y/VBnjYwMn6higD48rWGyJy Nqzntkgw2huX2R3OBlY4MY0CH1mZH0Nut+IuQiQ/ST74FB9wf3Jhi90VYK26O1sYJSdW 3R4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771990731; x=1772595531; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JqCX+A7B/xYK3O+/EJk4ZtsIswe0wWdZp+sEMdt10Pc=; b=pD2YK7R08aR+FC4+fGvlQj8DlaZgV7HetuWJpxfAGe1A5uhohRuDubQzsLhvy9UmKV k+/zun9ZVTrUTO2tWaszanMczKJNaxwR4LMSfGi0Cl3D0QyIUcvAjXaGweM2RsNQCogm kybntVhC2KyOipnEnFRhPZ6Ll0lRu8tVuPyo8OxSJM5cPvNnHiNpA7Frd3Tf1kg3MnBV 5/GL8ITIlFBV+TFzpTT/1hKAEDhfH7o7QQQ13nJ9HNr0VWHKGLyoc4dZvlpBSrsuFTxt tIMDPFJpm/bM4l+wFU6MUBorUScqXPDHxHU+gae8pHaGhPTwVaqXPNU4PbHOSSLkdYIe i7Wg== X-Forwarded-Encrypted: i=1; AJvYcCVJ/dePO2DpQAnu1XH/Ji8TYrl0UmIR70go0GHG2v7g9UIg7jZViRClY3W406CFJsjujpyskg55rM7Y8o8=@vger.kernel.org X-Gm-Message-State: AOJu0YxWyw2x/s2p3JyfOx8jRHdEHpOzpeZ/nAgH3hVEvZJ/zYX86Zm2 TuoFtNGdSMdpGKWjV2Oobvz6J5S3ohbqcoFUgk2vVazWDi+tRRH+qhNq X-Gm-Gg: ATEYQzxCQFJS4rsTj0SwxrGVQMQJwkGuG7Iu5vedh+k/FYOasZExsF3BKOYdbre4bLV OMsLTe2YwXnm7W4r5ywoP8Xh4++XI5DvUOTL3NaaSzesMSVkc4nUyr5j26jsRO3WvcrZF5frhyw eOwIwLcEFTu93G8D1mnrzkXOqABOnF17+58p6XcZcYdC6UHDW6PAQlB8HmUu9XjmBCMS1FK5L0i KRDFbrzHjEziXKGOtNmrra/vF+UIouPbSVpazbwcDOFQanOdc9yfmdWCbnkpWl7sn6s5/LlXq0Y FlhkGQWXoUoXyhBef9OEcq+2GQX6J2ZBX+umHMWvAf1oXCyChHYprooE4eQEwpLH9a/0TV8l2MJ etgebZ6jxxg3j+C3RgZz8BRWea0nSqQ/wa38LE4WtcJ6WGuOXICHInTJ6A40VioBNaVDoxetvWl 4uXbFD+34KKcM4T3Ao+Mwy9JyjyBl21ZwLJZKZaxssqXR58GtIyKhZFZtJX9nhH0veb2xQSMrom Ds6NCHp X-Received: by 2002:a17:90a:c887:b0:356:23be:7ecb with SMTP id 98e67ed59e1d1-358ae808fb4mr11595307a91.12.1771990731279; Tue, 24 Feb 2026 19:38:51 -0800 (PST) Received: from localhost.localdomain ([138.199.21.245]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359018838b2sm1161746a91.5.2026.02.24.19.38.47 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 24 Feb 2026 19:38:50 -0800 (PST) From: Eric-Terminal To: Dominique Martinet , Eric Van Hensbergen , Latchesar Ionkov , "David S . Miller" , Jakub Kicinski Cc: v9fs@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Nikolay Aleksandrov , bridge@lists.linux.dev, Anna Schumaker , Chuck Lever , linux-nfs@vger.kernel.org, Yufan Chen Subject: [PATCH v2 1/4] 9p/trans_xen: make cleanup idempotent after dataring alloc errors Date: Wed, 25 Feb 2026 11:38:37 +0800 Message-ID: <20260225033840.33000-2-ericterminal@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225033840.33000-1-ericterminal@gmail.com> References: <20260225010853.15916-1-ericterminal@gmail.com> <20260225033840.33000-1-ericterminal@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3411; i=ericterminal@gmail.com; h=from:subject; bh=Gu0MyqKlwATaZLTHkAVxYELyEu7nRq9nuCfzTHc2Ad8=; b=owGbwMvMwCXWM/dCzeS3H+sZT6slMWTOy5NTm/gzgiOsN2hHx4cJz7fzhr19LZHb++7ufoVZo snTztnZdZSyMIhxMciKKbLc/b9vbq7XrTnXuQ/nwsxhZQIZwsDFKQATuWbAyHDC3ICJlbVC0rBZ fRMn18uDx4MObX75UfXy+stNxZIpL/4y/BXwOLHVb3ZcItMd+/SAj2IK0WHehYmHLjAYvrrHufu tEDsA X-Developer-Key: i=ericterminal@gmail.com; a=openpgp; fpr=DDFFBE9D6D4ADA9CD70BC36D8C9DD07C93EDF17F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yufan Chen xen_9pfs_front_alloc_dataring() tears down resources on failure but leaves ring fields stale. If xen_9pfs_front_init() later jumps to the common error path, xen_9pfs_front_free() may touch the same resources again, causing duplicate/invalid gnttab_end_foreign_access() calls and potentially dereferencing a freed intf pointer. Initialize dataring sentinels before allocation, gate teardown on those sentinels, and clear ref/intf/data/irq immediately after each release. This keeps cleanup idempotent for partially initialized rings and prevents repeated teardown during init failure handling. Signed-off-by: Yufan Chen --- net/9p/trans_xen.c | 51 +++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c index 47af5a10e..85b9ebfaa 100644 --- a/net/9p/trans_xen.c +++ b/net/9p/trans_xen.c @@ -283,25 +283,33 @@ static void xen_9pfs_front_free(struct xen_9pfs_front= _priv *priv) =20 cancel_work_sync(&ring->work); =20 - if (!priv->rings[i].intf) + if (!ring->intf) break; - if (priv->rings[i].irq > 0) - unbind_from_irqhandler(priv->rings[i].irq, ring); - if (priv->rings[i].data.in) { - for (j =3D 0; - j < (1 << priv->rings[i].intf->ring_order); + if (ring->irq >=3D 0) { + unbind_from_irqhandler(ring->irq, ring); + ring->irq =3D -1; + } + if (ring->data.in) { + for (j =3D 0; j < (1 << ring->intf->ring_order); j++) { grant_ref_t ref; =20 - ref =3D priv->rings[i].intf->ref[j]; + ref =3D ring->intf->ref[j]; gnttab_end_foreign_access(ref, NULL); + ring->intf->ref[j] =3D INVALID_GRANT_REF; } - free_pages_exact(priv->rings[i].data.in, - 1UL << (priv->rings[i].intf->ring_order + - XEN_PAGE_SHIFT)); + free_pages_exact(ring->data.in, + 1UL << (ring->intf->ring_order + + XEN_PAGE_SHIFT)); + ring->data.in =3D NULL; + ring->data.out =3D NULL; + } + if (ring->ref !=3D INVALID_GRANT_REF) { + gnttab_end_foreign_access(ring->ref, NULL); + ring->ref =3D INVALID_GRANT_REF; } - gnttab_end_foreign_access(priv->rings[i].ref, NULL); - free_page((unsigned long)priv->rings[i].intf); + free_page((unsigned long)ring->intf); + ring->intf =3D NULL; } kfree(priv->rings); } @@ -334,6 +342,12 @@ static int xen_9pfs_front_alloc_dataring(struct xenbus= _device *dev, int ret =3D -ENOMEM; void *bytes =3D NULL; =20 + ring->intf =3D NULL; + ring->data.in =3D NULL; + ring->data.out =3D NULL; + ring->ref =3D INVALID_GRANT_REF; + ring->irq =3D -1; + init_waitqueue_head(&ring->wq); spin_lock_init(&ring->lock); INIT_WORK(&ring->work, p9_xen_response); @@ -379,9 +393,18 @@ static int xen_9pfs_front_alloc_dataring(struct xenbus= _device *dev, for (i--; i >=3D 0; i--) gnttab_end_foreign_access(ring->intf->ref[i], NULL); free_pages_exact(bytes, 1UL << (order + XEN_PAGE_SHIFT)); + ring->data.in =3D NULL; + ring->data.out =3D NULL; + } + if (ring->ref !=3D INVALID_GRANT_REF) { + gnttab_end_foreign_access(ring->ref, NULL); + ring->ref =3D INVALID_GRANT_REF; + } + if (ring->intf) { + free_page((unsigned long)ring->intf); + ring->intf =3D NULL; } - gnttab_end_foreign_access(ring->ref, NULL); - free_page((unsigned long)ring->intf); + ring->irq =3D -1; return ret; } =20 --=20 2.47.3 From nobody Fri Apr 17 00:17:20 2026 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) (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 00DEC29D260 for ; Wed, 25 Feb 2026 03:38:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.68 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990737; cv=none; b=tBivnF6KxMELddbsY0/ArpFuxG8Eb0b8kKkIa3KYPHQyHjByVYC/QaINlcn1kAvyHvABZZA5SipnpIRccxTUYLol2PY6ZlYJTdObQvAO+DzW6C+l4o3vt0WAH5mXA5fTPNRA4gVwoP5L7fvk3l0qwV85Uj37ahzlxyfVkUXSXuU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990737; c=relaxed/simple; bh=ioQkH6Kq3BaHcNNHYkbSQWOm2Z0hguUCzLEhgRepsrc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cB6BtqJhfcj5ggrVhk++HDKs4m6afcSJg5kWs7xpbQ3OInek5nXqCJ5USxp523fNFEsKZfpXlEo74cUoLMleq58LQZCcXpqRt/5luXKeUWBYSkGFcrquotc2lzne+d0NIAjLc6AUx9neSSSHrLFSUhz9SuKjVfkcrdXUzl2ND64= 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=YlgskxDC; arc=none smtp.client-ip=209.85.216.68 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="YlgskxDC" Received: by mail-pj1-f68.google.com with SMTP id 98e67ed59e1d1-354c19bf64bso205677a91.1 for ; Tue, 24 Feb 2026 19:38:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771990735; x=1772595535; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pRulitact7LuRkcM6p1wuTRq7YmEiipbfGs7cAozTt0=; b=YlgskxDCaagXqLqBWNR32RcGuHpKpYOSiknLrzppzx9jdMQLim4rYz540m4ElxQbL3 ERewl5Y56lZNqRu0Kw/1C6AF2IDjJgYka6Yhf5iRvnqTB/ka//gKILEsux4Fy3D3lV5K uTG9en2lXeo+kRyg7ePdsIKWDZ9R5UDJV8RjwstCCKYioxO8kRYYBQiSLNlZRw0dxM+x WWRqp3Ss5M2+3N+XtOHjpxllkwAALttF+qPFTNP7QDonlrEovwdrGdVL/riuSt+PIt/F WRNv2A6Qz0bOjUqA4J/b1OUdWbrMFSWvQpjt1bjPZh/niWN9dqNk9alrq7x+qU7+jfGm Ff2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771990735; x=1772595535; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pRulitact7LuRkcM6p1wuTRq7YmEiipbfGs7cAozTt0=; b=Wl5/j5sQzOq8Ov4Olqd2BvuhdaNX85KBmbImagYiSYRTkW8ieB89gVApGwFbnQ/Kkm hpRIMAmUEyazgV+fHW9KraYDoQpSVgc+7jBSzDjRIahGI9Hf2RAhuJBJLL8a49OtW1cz E+4e4ulI9rduIm8NBB4mUfKDe/zXSucZdwEQ1XnYOU4CX5OvFftB7kkG1osOZYUHsMXJ Jnyc6jm5kJLYJAovtDMmXF9nrQd+YfmGtIlDhaxJs/qWu9MG3iXnU3cgs1jAb63bfTBn dDZ4JUsRqC0dwirsSgi4gRuqFoCE4coTMoVk4CMWhTPfun7CzLpmTxMWRF6h/Mar9+4W BEvQ== X-Forwarded-Encrypted: i=1; AJvYcCUqRtTlif62jki6JahxqrGZnM8n5yZ4jsWK+9rnkW4hPOdNplRn7QTW5kZ3JerfasYvCgdBInTquOgzOgw=@vger.kernel.org X-Gm-Message-State: AOJu0YzlaB7ZCa22RGIvlr2npZbPL19Cz/08I52YwOsQh88Bt/4ATkeK 8orsVaYFt7a4bNIyGhAr6EqpCqDV8fILCpxSGK99lMFIFRrxA/6On3J1 X-Gm-Gg: ATEYQzxXY2ETdTnAtarb4XqdE9hdWJzO6w3YlOiXTKOhavr1NAhCX9hfXfMiK6paA3V Z7ZKy3N1vm8ivLnljGditjdo3zUbabEQIFKmZrC3lvklGf5lbi8M109lzvGAoZfS3k1jOQtJ+ZZ FwOmdcsOaAF5U75oOZEQMF/rmV+hLp2jNXqxkZ2akazJtLGAmdJpV/78xEogd206UoxMPQKBic8 GqrDTVcRNUyM9JlMJARU2f5G/O/9k3TVksmiLKs/0iBFXjCL1455cMov/0LwFvl0ChupvDUlMJX /t3i77il+edl6witLJINwd6g/JkFk9bUI/SeN2Yug+KSvlqtEcW/bZkutFYLknusSWGc74hXnKi YVR4p1l6FOvQrASeCk1ZxXy6VlbikyUs5eFFbwztiENvXWXu9r6CENm1VJu+pvxMl9FNVVW8er7 qIOC4mUjk5+AcUNn4rZhgvlcgdr1n1dQgy2F/GvYrEldE7aDfKkJJnVgqGuZGfZM3lAZGrdA== X-Received: by 2002:a17:90b:530d:b0:32e:72bd:6d5a with SMTP id 98e67ed59e1d1-359037f3512mr2134249a91.1.1771990735285; Tue, 24 Feb 2026 19:38:55 -0800 (PST) Received: from localhost.localdomain ([138.199.21.245]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359018838b2sm1161746a91.5.2026.02.24.19.38.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 24 Feb 2026 19:38:54 -0800 (PST) From: Eric-Terminal To: Dominique Martinet , Eric Van Hensbergen , Latchesar Ionkov , "David S . Miller" , Jakub Kicinski Cc: v9fs@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Nikolay Aleksandrov , bridge@lists.linux.dev, Anna Schumaker , Chuck Lever , linux-nfs@vger.kernel.org, Yufan Chen Subject: [PATCH v2 2/4] 9p/trans_xen: replace simple_strto* with kstrtouint Date: Wed, 25 Feb 2026 11:38:38 +0800 Message-ID: <20260225033840.33000-3-ericterminal@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225033840.33000-1-ericterminal@gmail.com> References: <20260225010853.15916-1-ericterminal@gmail.com> <20260225033840.33000-1-ericterminal@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1616; i=ericterminal@gmail.com; h=from:subject; bh=ULBANr6zOAUiLxfBQ+XUgxxtzikjVOyTnngJAb6RsoQ=; b=owGbwMvMwCXWM/dCzeS3H+sZT6slMWTOy5Mv3PZGZ5rZi2trbn3b/meXvM21X0ZzD/hIHVHnU j+hlrfcraOUhUGMi0FWTJHl7v99c3O9bs25zn04F2YOKxPIEAYuTgGYyAFhhr+iYfnVLu2vlgl9 9Lm+6VXxTJlXa/TrWIMsHp+NPXTYLvgIw1+pWW6lZxMq+642FKwxSdu3MvZ8S+y6r4dllvUskXi 4sJ0VAA== X-Developer-Key: i=ericterminal@gmail.com; a=openpgp; fpr=DDFFBE9D6D4ADA9CD70BC36D8C9DD07C93EDF17F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yufan Chen In xen_9pfs_front_init(), parse the backend version list as comma-separated tokens with kstrtouint(). This improves error reporting and ensures strict token validation while explicitly requiring protocol version 1. Signed-off-by: Yufan Chen --- net/9p/trans_xen.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c index 85b9ebfaa..f9fb2db7a 100644 --- a/net/9p/trans_xen.c +++ b/net/9p/trans_xen.c @@ -413,23 +413,29 @@ static int xen_9pfs_front_init(struct xenbus_device *= dev) int ret, i; struct xenbus_transaction xbt; struct xen_9pfs_front_priv *priv; - char *versions, *v; - unsigned int max_rings, max_ring_order, len =3D 0; + char *versions, *v, *token; + bool version_1 =3D false; + unsigned int max_rings, max_ring_order, len =3D 0, version; =20 versions =3D xenbus_read(XBT_NIL, dev->otherend, "versions", &len); if (IS_ERR(versions)) return PTR_ERR(versions); - for (v =3D versions; *v; v++) { - if (simple_strtoul(v, &v, 10) =3D=3D 1) { - v =3D NULL; - break; + for (v =3D versions; (token =3D strsep(&v, ",")); ) { + if (!*token) + continue; + + ret =3D kstrtouint(token, 10, &version); + if (ret) { + kfree(versions); + return ret; } - } - if (v) { - kfree(versions); - return -EINVAL; + if (version =3D=3D 1) + version_1 =3D true; } kfree(versions); + if (!version_1) + return -EINVAL; + max_rings =3D xenbus_read_unsigned(dev->otherend, "max-rings", 0); if (max_rings < XEN_9PFS_NUM_RINGS) return -EINVAL; --=20 2.47.3 From nobody Fri Apr 17 00:17:20 2026 Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com [209.85.216.67]) (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 B020A2BE7B6 for ; Wed, 25 Feb 2026 03:38:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.67 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990742; cv=none; b=Fj4tSB3fuR6Xjb3pbM+NhXmykAQbDSWXTo9okqZilEI0V/oCBCK6eTeFrpzdJgNhDGd5nE45jBjePTOforrxNDow4njmildkKtL2qPBqkpY8sgdkZANd1oJJQCfREyMdtquercCPx351Ha1ISeOiULdvu7csHQd6Zv+K5++GoTc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990742; c=relaxed/simple; bh=Xmf0Usl2CbiEJ++dZC/dkjhOytdRgouJKZh4aFkNkks=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tNFClU9Nakod7XHs9cAT+R1gMjMT39u8dsWlUHMBiAmKay264yOvs7Ed2QggXt3QqdgOwSB0LmCVdbtW4wXqhPfPzV5BWgSnUvDhc3+IITBNL05Tab6OeccrNnTVKwJeuC9O4KDED0djD9tLqaZ5yxqFlumjU2/Ntn7h+WdNulM= 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=Phz/w6/f; arc=none smtp.client-ip=209.85.216.67 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="Phz/w6/f" Received: by mail-pj1-f67.google.com with SMTP id 98e67ed59e1d1-3590d548576so263380a91.2 for ; Tue, 24 Feb 2026 19:38:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771990739; x=1772595539; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1x6mfY87rLHQQy6u5hEHImplDq7CY6og6rQC/w4gcIk=; b=Phz/w6/fN+I9dmIs3HRecR/af3PTONFhFAAvysU7IkpEEBQ9pIZbrdlVZhpL58INf2 tA6oj+W7Ybn3bhnOsdzzRUahaMYumOHIq+zTyl/Gx3nLI+iJLPme054nZBLUDpnpj2or MTryVNfs9fG4pH8mtRHd7SsS49/uV6Akp+gSzSKRJDV353Fw3rJiCT+jpG66Anf/rwD8 iCjI56waJvF1zDHy1zrl4RFFkp0j2hk7iylERdR0JJCB6pXHnILTI3oOD8uxuyTRNWeq NnNU40VaFgXqi+66s7IB8PvzR96fLY0dJ0URziSBYadnLQTJsZXbEJsck9+V8KiH+hUV y2BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771990739; x=1772595539; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1x6mfY87rLHQQy6u5hEHImplDq7CY6og6rQC/w4gcIk=; b=koUcYnmLK1FMiF2rae/y5Nsvb5ol988i62Kk0BbRekJJ3O80o2NnfqhzFNljpkFdqB rNaeYegiv4ZINKezw2qxiNFygAaLG4L045QmrlQ/PEJGPiJ8Ju+OddA71tlg5kcYj9Yo A2lbutce2km1iQTS30V1ao8fm2zTmfIjZcBkSc28A/0dB00a4mJV9BeRbnRY/TESmTd2 hUNXMUJNFnaJ9EV5YojanaXZGSq7qiZ2bCwnoyZm3Bs2hR+8h65yj6eXkgOZaqmFc+TW WGv28yBIcwEuzRUxa5NUMWT6VzdL8y2Kssnx0rif8ElJoX8llNe3OhbWePzoZSz0PGOk sV7Q== X-Forwarded-Encrypted: i=1; AJvYcCWNKAwHaxbVOw+OaBZupmPCTomHM28cVLwxVe7Uks+AHMExHRXS6mURmRQntilmsHFdfInhrdtC3cLWFSs=@vger.kernel.org X-Gm-Message-State: AOJu0YzYXoQbUJQluC+LAVTJcKfW62KiY8YN2JeThh+ClhssEP4eNHbC 1k75qyCJnSgkBKm0T1fJK5iyUzjP5u/AZ6wkEL41Ac+FKibI0JLd5np7 X-Gm-Gg: ATEYQzzuCfupxUO59q5IA4YT5z8RAJy3Ne3AAOstqRY2DDPwd1knxo03TVl5hYh6k2W zpyhpERKfjd2cM+t/ULhtmsWEgkRbeuyIIGayHGOJ8MUyjmy1E+wyVu51dj6erbGB6Vc1Ztkssc 2vkwPhxrRpNlrGV/NolsQKu+GzCE7TL2ELcxqBNcbbwoBToOvEH7mFPGmf9O/fnaTsTGX9Grasp 8Q1sYPeTknzC1nMecuwuEAdOl7bc7+ZXKoVvqV45HzFowznOY1JbhYfzOfS2jJe0v0SqmVE9HBQ +sxlQ0bL+lO8Oa2PAfk+YtZM7e3oh6yR40WJPogsxVA00fYszoVzf4pX4W4v0AVm4bpy9IVMl/j HiIgt0I3Mz1Eg7tvch0gp2fzdpwrKOX66iBUVjOS3ttD2rZRik7+RBBCjTUKJXlR4ZZUk1ePezw N2vgPAnMJ3R0GlQ1qWz6kA5tuAl8wHKJG2sHyxeIOtyT/ZF3xTDrHeRn6WEcX16kguW7Xvrg== X-Received: by 2002:a17:90b:56cb:b0:353:4f7:cc3a with SMTP id 98e67ed59e1d1-358ae6a20c3mr10834421a91.0.1771990739052; Tue, 24 Feb 2026 19:38:59 -0800 (PST) Received: from localhost.localdomain ([138.199.21.245]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359018838b2sm1161746a91.5.2026.02.24.19.38.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 24 Feb 2026 19:38:58 -0800 (PST) From: Eric-Terminal To: Dominique Martinet , Eric Van Hensbergen , Latchesar Ionkov , "David S . Miller" , Jakub Kicinski Cc: v9fs@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Nikolay Aleksandrov , bridge@lists.linux.dev, Anna Schumaker , Chuck Lever , linux-nfs@vger.kernel.org, Yufan Chen Subject: [PATCH v2 3/4] net: bridge: replace deprecated simple_strtoul with kstrtoul Date: Wed, 25 Feb 2026 11:38:39 +0800 Message-ID: <20260225033840.33000-4-ericterminal@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225033840.33000-1-ericterminal@gmail.com> References: <20260225010853.15916-1-ericterminal@gmail.com> <20260225033840.33000-1-ericterminal@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1158; i=ericterminal@gmail.com; h=from:subject; bh=c73ZZJhJVbdBF0f9KkqjyvY2nE5EvyIEm2O6pWmXnD4=; b=owGbwMvMwCXWM/dCzeS3H+sZT6slMWTOy5PnqLqsF81puzI5ayHffb3zHYcZDL1UHARPrTOS+ L/mqIZHRykLgxgXg6yYIsvd//vm5nrdmnOd+3AuzBxWJpAhDFycAjAR55eMDHuY6jkmG7ptFBOa 4PKkJd6hVPdHv8EUc5nrVxctfxvR8I/hv1doohTPKjst3sM5214eqV8idXiXa8/OijYjjbnujbs /8wIA X-Developer-Key: i=ericterminal@gmail.com; a=openpgp; fpr=DDFFBE9D6D4ADA9CD70BC36D8C9DD07C93EDF17F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yufan Chen Replace simple_strtoul() in brport_store() with kstrtoul() so conversion failures and range errors are returned as standard errno. This keeps parsing strict and removes deprecated helper usage. Signed-off-by: Yufan Chen --- net/bridge/br_sysfs_if.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c index 1f57c36a7..cdecc7d12 100644 --- a/net/bridge/br_sysfs_if.c +++ b/net/bridge/br_sysfs_if.c @@ -318,7 +318,6 @@ static ssize_t brport_store(struct kobject *kobj, struct net_bridge_port *p =3D kobj_to_brport(kobj); ssize_t ret =3D -EINVAL; unsigned long val; - char *endp; =20 if (!ns_capable(dev_net(p->dev)->user_ns, CAP_NET_ADMIN)) return -EPERM; @@ -339,8 +338,8 @@ static ssize_t brport_store(struct kobject *kobj, spin_unlock_bh(&p->br->lock); kfree(buf_copy); } else if (brport_attr->store) { - val =3D simple_strtoul(buf, &endp, 0); - if (endp =3D=3D buf) + ret =3D kstrtoul(buf, 0, &val); + if (ret) goto out_unlock; spin_lock_bh(&p->br->lock); ret =3D brport_attr->store(p, val); --=20 2.47.3 From nobody Fri Apr 17 00:17:20 2026 Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) (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 7936426FD9B for ; Wed, 25 Feb 2026 03:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990745; cv=none; b=MLKCQxj0iUjTbTmlBJR5RE+3LsVvJKsfOOw9jj7SDiY/GNFvRBiVA3PcysW8my/nAPwV1ilInDbbgOVdA4tVwlM1X6B+qiEy42knpAIDwpTC33XVSnmve9QOncxLyenmq5sMs+7jlWQNPrKOhpQbq2u2AAWHExcD1dXZ6VKmTfs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771990745; c=relaxed/simple; bh=DIh8WtJKsYfFWmCLOMLa1uDVR3z6AtCB+KFcTxnsk9E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P0kymdBLHC8bcXnP+lxV6hqQsXZtQdeDsxrOSZRqXGXm4Q0WjkMJfx4DbbUrnGVbdtWFqsx5l+YDexVkz9lhZrMX7xBAwCoDevFm29mku+dOu5A4d5VrCh+d/KeE6pcsQJDMSTYoyNZPLW976udRATjs39oIusfk/gCzEQKm4Gk= 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=Xek8m1Xp; arc=none smtp.client-ip=209.85.216.66 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="Xek8m1Xp" Received: by mail-pj1-f66.google.com with SMTP id 98e67ed59e1d1-35621aa8c7fso3423277a91.2 for ; Tue, 24 Feb 2026 19:39:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771990743; x=1772595543; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qbcH8R6MMRau4mrpEGGDZ1QNTvGTHu8f4PpAUvn8HKw=; b=Xek8m1XppizUUVgCLQ7ndGRly2a4A+0NvpyAiEUP0jKd2p4e8SvlLBHvlN68rq0HV5 MnImVMdnCIZeM6AMSxi/HJ6Y1ZnCn7sW4X9vdhKdVCDGg8JNVBu5TqXjv/bJw7gg24i3 wr0nIo4i2oSe2h3PBUfAyhqaOW8WUxnhfQpZtU0NHDN1zD2cDWGcMTS8dHleRO+1vEkR HFgBnJ5jFnozgWW78SHAeNOT/BZ77yTd1fhn0zcDtu42Lik5uSC4E/8RRumoO6K9+Y8W Fze2ffi0UoPftnSqwExjS0Q0qPtDHtLM7tHI8EZDWCECs17I/R8vSNRQZhp9HPmhaGxp Zs1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771990743; x=1772595543; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qbcH8R6MMRau4mrpEGGDZ1QNTvGTHu8f4PpAUvn8HKw=; b=hcEbIfH6+YD/9BCoMUEhosn+fZsj86+hPHe4ySxC35hi1HTrMMMv1NLHuNL1EN+6xU SNX3yJZbUBiw8jVxHHyly3GT66j8+Fqwe2ndjc38gRR+lW+Ize3AmWgFtOaUxX08wAts Iow/MD5UIZ00AmG1VYmUXeAp7YChdxCTPREEJ1yssoXPon23aszJ2ks+bvffPz4m4kS7 6vVwi+Vq6B//+1eFbD6KlldNgR7G0K/rtBEZoDN3/od0HnxAVC5Me9pgWjiyciPAiSc9 FuXBhqt0C/SpSdbk61cvOSEcPwiw9Ly+RXPrk9jCdJakazmvVA+voPUJzHzo8LD2fYq4 ew+Q== X-Forwarded-Encrypted: i=1; AJvYcCVON/Rx2iuBGOCSeHv5RBEAyb/FAtRPApPYyi15AgHispVU3B5sQmHVugSEh/wBLH6ZfpUYjQFZ9BeWdeo=@vger.kernel.org X-Gm-Message-State: AOJu0YxPrUYbQ/ZGpZX9PM5w1nZRV44DRxY44Jlbc3sDZ6VdwfxFbjLI 7+pafiUYEvrdOjbKKv4t2b3ypExIsp3XQFzW8oLm6jjzu7fEAfMgolmr X-Gm-Gg: ATEYQzxUvF47ETA3M4u5CC1fT7zF2ylzqHNeJLCN1WqmBkO7yIwKuepCsHX+fXs/P95 memlSrsWqqFB2shVS0g82Ns81sbc6fzLlkjAikn+v/Z4BmqfBmYDR2Oeu7QTPXmDnbrqljN0U1D KgM67jw9rxHSfCQD2nDsWETYSHHoIs0U6JPorq7bJwvFB/KqUdlIUwncaetJpm+ZSwswx5sCeyn Xsd6v/5mfhETpvMsL3NPPSgBFNOoePsiBqlwmgOvkIJpjcGYL4Aym7DJGh43T1+fumDM4wd+fni mSvqjWzxW6mIQdgL9IcCZ9keV6ArxnNr3mU5v5JvpPjkVPsccuF9XHUV81C94FuwNALGJvQgHQY EXF6lyehwJRQRFWFVyfsoP07KQsnuPSDRRIcfVHx5SJpvtDqvYzQlJzDLPkoqEbQbO0dOEDWtls OVzLZJ2hhVWxpPvt8VOczbZwzx4lznf9ovlMSBvUkqZPCtMg7UDmAO0X+TThbq3N5dWNSPdQ== X-Received: by 2002:a17:90b:3f90:b0:359:7eb:d922 with SMTP id 98e67ed59e1d1-3590f226ddcmr865260a91.30.1771990742896; Tue, 24 Feb 2026 19:39:02 -0800 (PST) Received: from localhost.localdomain ([138.199.21.245]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359018838b2sm1161746a91.5.2026.02.24.19.38.59 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 24 Feb 2026 19:39:02 -0800 (PST) From: Eric-Terminal To: Dominique Martinet , Eric Van Hensbergen , Latchesar Ionkov , "David S . Miller" , Jakub Kicinski Cc: v9fs@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Nikolay Aleksandrov , bridge@lists.linux.dev, Anna Schumaker , Chuck Lever , linux-nfs@vger.kernel.org, Yufan Chen Subject: [PATCH v2 4/4] sunrpc: sysctl: replace simple_strtol with kstrtouint Date: Wed, 25 Feb 2026 11:38:40 +0800 Message-ID: <20260225033840.33000-5-ericterminal@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225033840.33000-1-ericterminal@gmail.com> References: <20260225010853.15916-1-ericterminal@gmail.com> <20260225033840.33000-1-ericterminal@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1785; i=ericterminal@gmail.com; h=from:subject; bh=VO5IMzOC4K3hwnb1MwA7obneQq8hnuATlXNUArothF8=; b=owGbwMvMwCXWM/dCzeS3H+sZT6slMWTOy5NnFy7tzFYvrrwYZrvs0uTl0WyZgj17bh7bWXj9H ktUtqdnRykLgxgXg6yYIsvd//vm5nrdmnOd+3AuzBxWJpAhDFycAjCRB7cYGfYkbQsNc83T5D7V EcAdsUvkgG9N148DEm3V4R0XV915FMTwz9S6piw0ccG+fidP1kyRFuYGXW3ZZ3eK5hY4sX5+P2c LKwA= X-Developer-Key: i=ericterminal@gmail.com; a=openpgp; fpr=DDFFBE9D6D4ADA9CD70BC36D8C9DD07C93EDF17F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Yufan Chen Use kstrtouint() in proc_dodebug() after trimming trailing whitespace. This keeps accepted whitespace behavior while enforcing full-token parsing with standard errno returns. Signed-off-by: Yufan Chen --- net/sunrpc/sysctl.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c index bdb587a72..07072218b 100644 --- a/net/sunrpc/sysctl.c +++ b/net/sunrpc/sysctl.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include =20 @@ -65,10 +66,11 @@ static int proc_dodebug(const struct ctl_table *table, int write, void *buffer, size_= t *lenp, loff_t *ppos) { - char tmpbuf[20], *s =3D NULL; + char tmpbuf[20]; char *p; unsigned int value; size_t left, len; + int ret; =20 if ((*ppos && !write) || !*lenp) { *lenp =3D 0; @@ -89,19 +91,17 @@ proc_dodebug(const struct ctl_table *table, int write, = void *buffer, size_t *len if (left > sizeof(tmpbuf) - 1) return -EINVAL; memcpy(tmpbuf, p, left); + + while (left && isspace(tmpbuf[left - 1])) + left--; tmpbuf[left] =3D '\0'; + if (!tmpbuf[0]) + goto done; =20 - value =3D simple_strtol(tmpbuf, &s, 0); - if (s) { - left -=3D (s - tmpbuf); - if (left && !isspace(*s)) - return -EINVAL; - while (left && isspace(*s)) { - left--; - s++; - } - } else - left =3D 0; + ret =3D kstrtouint(tmpbuf, 0, &value); + if (ret) + return ret; + left =3D 0; *(unsigned int *) table->data =3D value; /* Display the RPC tasks on writing to rpc_debug */ if (strcmp(table->procname, "rpc_debug") =3D=3D 0) --=20 2.47.3