From nobody Mon Apr 6 15:45:07 2026 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (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 A3B6B3B19B0 for ; Thu, 19 Mar 2026 09:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773912978; cv=none; b=KEu5ScgPQAs2MagGLbe4AcpE1eW+87h2KG805M87DBKUYbR8anIFZNv/l5QubOoZMfwPyE6KxZ485TP9W/7KbDvWlM1XIYc0KDaVDHbjCZQWfVPCPOQq7euZ0ROWDLnHwMApqfXQHiL1mtnsFIzKCmGKbFUVP8oJIsycZ57m4TE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773912978; c=relaxed/simple; bh=zVeUD1ENGLPUpi02yQLpQxvzyfHc4I64+29LpmnDPRA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s5TxVJ3vjMKVKRUYW5o7jAotHKU7oaXw9qFxBaPnC5HwOuh6yhdw767/OqQJD8kxpMfJaNbBJzBKcO27wNfa5R0yAazF1i9pU0ehKujFu3ci2Fq8XSyuN/rriJrtdWvrd6nfdaOOevowpn1CY2AxiuQQmVlCw4BX42NGxahUd08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1w39nV-0003OG-Pw; Thu, 19 Mar 2026 10:36:09 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac] helo=dude04) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w39nV-0013Di-12; Thu, 19 Mar 2026 10:36:09 +0100 Received: from [::1] (helo=dude04.red.stw.pengutronix.de) by dude04 with esmtp (Exim 4.98.2) (envelope-from ) id 1w39nV-00000008yzO-0cD1; Thu, 19 Mar 2026 10:36:09 +0100 From: Michael Grzeschik Date: Thu, 19 Mar 2026 10:36:06 +0100 Subject: [PATCH 09/11] tools/usb/p9_fwd: catch write or read errors on disconnect 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: <20260319-9pfixes-v1-9-c977a7433185@pengutronix.de> References: <20260319-9pfixes-v1-0-c977a7433185@pengutronix.de> In-Reply-To: <20260319-9pfixes-v1-0-c977a7433185@pengutronix.de> To: Eric Van Hensbergen , Latchesar Ionkov , Dominique Martinet , Christian Schoenebeck , Greg Kroah-Hartman , Hyungjung Joo Cc: v9fs@lists.linux.dev, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Grzeschik X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1880; i=m.grzeschik@pengutronix.de; h=from:subject:message-id; bh=zVeUD1ENGLPUpi02yQLpQxvzyfHc4I64+29LpmnDPRA=; b=owEBbQKS/ZANAwAKAb9pWET5cfSrAcsmYgBpu8OIskogG332H0xRY2BZOeoXqGpS3SrKw54kX 3FfcRs3qbOJAjMEAAEKAB0WIQQV2+2Fpbqd6fvv0Gi/aVhE+XH0qwUCabvDiAAKCRC/aVhE+XH0 q8SZD/4xWQvsLmae3+yc0JgsCq4by28ODAVzJNrco3Yok39qOw5rFVTnsYoYbcF9h9UIDS9klAv 2PVzspgyuxytIhA9isncW21fXJ9LpH6lhfAZBgLritxUKhW7tdN02JXjz2tFcPzpxaaBOvcDpGi HqSKvc6w1UFNgpJ36P95UecYaeff6yIVshdJRakxKKTcVuD8CwZK7BZ/3UDSk0gKMD16y1qz2Ty u9Tu5kNhTiL/Gblvm2wOEBFnVqT/Qxc5kT+uQ4QbQpxa9ezyY6+oLKo6SCUTSC2pET1H3A6M4RA x7/YWScQUAOAmSHF4A5/+7WEjz4uH7NHvr81AOraHWZ2+013JcgRjzSq1bxkHoe3+BbjwZjpDB8 ktMLfLyWlMOMbwePzD9at1w75Xg+o6TdF5cqISQKuyMFg+2gesJbX+hEv3wPmfjSK0+2Mect6gY nrcOw0nSpNuS6S+Y5Niet4yJsztbfPu2kcJltjSy39DWhXdeetEggOWFA8A458SvVcGguWHLIK6 vDeBGvx1b1xGh9gL/gGi+OIaJHC4xMPYpZVDlcZGlPD4wvm1mOb1q7EWsHjuXs7IPQrnC9aZTUc srJHYhxByFNAQ+0ZPe2IfG8+megWgAqU9qP5d4GrmFu08Gj7qrAaZZe3K+4G2f1uULc6JFBOOA0 YDzD3aEqJKCLOqA== X-Developer-Key: i=m.grzeschik@pengutronix.de; a=openpgp; fpr=957BC452CE953D7EA60CF4FC0BE9E3157A1E2C64 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: m.grzeschik@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org When unplugging the gadget or the gadget is not available since the controller is reset, running transfers will return with errno ENODEV. We catch this issues and report the problem gracefully. Signed-off-by: Michael Grzeschik --- tools/usb/p9_fwd.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/usb/p9_fwd.py b/tools/usb/p9_fwd.py index 6a0104935ee995ec4159e27e1cfb7d93db422a33..c2c2afbf45df68376907ea2ae8c= 022614e4508f7 100755 --- a/tools/usb/p9_fwd.py +++ b/tools/usb/p9_fwd.py @@ -123,6 +123,9 @@ class Forwarder: logging.debug("c2s: reading failed with %s, retrying",= repr(e)) time.sleep(0.5) continue + elif e.errno =3D=3D errno.ENODEV: + logging.debug("c2s: reading failed with %s", repr(e)) + raise ValueError("disconnected") logging.error("c2s: reading failed with %s, aborting", rep= r(e)) raise size =3D struct.unpack(" 0 - data =3D data[written:] + try: + written =3D self.ep_out.write(data) + assert written > 0 + data =3D data[written:] + except usb.core.USBError as e: + if e.errno =3D=3D errno.EIO or e.errno =3D=3D errno.ENODEV: + raise ValueError("disconnected") + raise if size % self.ep_out.wMaxPacketSize =3D=3D 0: logging.log(logging.TRACE, "sending zero length packet") self.ep_out.write(b"") --=20 2.47.3