From nobody Wed Dec 17 16:11:07 2025 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 45DB61C5CA6 for ; Mon, 9 Dec 2024 13:08:01 +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=1733749683; cv=none; b=DXrSdoibbP+Bdp5/7LHaZX3jgGNa1q8M4uvhYffPR1RYr0PDlrMFiKqiWVUXzhJW7d1Oai3lOujHOzJ55fakpg/wUNCfg03H7vAynwg3a12jtHQkPVVdbVSWXNlCKp0OGMJVBlOcOlsii67/6BvULw45dbII4+YQKSANA3VPEyk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749683; c=relaxed/simple; bh=84clEU0P/5CbvPrnaLag9WOQh/98lXhngHyQ/rKGNEE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LtuIU5dQyvA5AUy/n2qY5L8F+bABZN1RNQLNouBZVf3DetJMsg96Bgp/FH+OOpqRQZrfBm1bQqPHgAOaVu8qVdnH/sP+7Xgmyv2Gp+++DrrZjR1CCj20ilmc1RKmVwQfg0JX0TWNrEYtDfsPAp0IQIInYb7IOXPrWLIRzDF8AtE= 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 1tKdUP-0004R9-PK; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7I-1U; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wws-0X; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 01/11] net: usb: lan78xx: Add error handling to lan78xx_setup_irq_domain Date: Mon, 9 Dec 2024 14:07:41 +0100 Message-Id: <20241209130751.703182-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_setup_irq_domain` to handle errors in `lan78xx_read_reg`. Return the error code immediately if the read operation fails, ensuring proper error propagation during IRQ domain setup. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index d5f6367d3714..070b21baffaf 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2445,7 +2445,10 @@ static int lan78xx_setup_irq_domain(struct lan78xx_n= et *dev) =20 mutex_init(&dev->domain_data.irq_lock); =20 - lan78xx_read_reg(dev, INT_EP_CTL, &buf); + ret =3D lan78xx_read_reg(dev, INT_EP_CTL, &buf); + if (ret < 0) + return ret; + dev->domain_data.irqenable =3D buf; =20 dev->domain_data.irqchip =3D &lan78xx_irqchip; --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 D9CE41B4224 for ; Mon, 9 Dec 2024 13:08:00 +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=1733749682; cv=none; b=NXuZw5ROWMK541k6EQaDQdaop3cnZZyQ0xGdMSjSfNmiSef0R8E3syvoAtkhHses2lq/J4Cv4mb3N0kiWEOSMy4qomsF0JLM01CdmfdXvscj5PjMVkm6EGJonMOKyQQdz9+MdaARA8Zzr/U7INkwTQf2dEQkCP3A10G2IisWqgQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749682; c=relaxed/simple; bh=PaxtvrrZrzTt8HJSHJ5IQ4oy/JKItrDoSW/bOnWk72g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JsuctbnY1J3aWJz4xprv1ppUXRKuO4UDUSfaDedEVsK6etm2QesVIMMnxO+jFzpbBT/4W4yE4zMVU1MmN6nIG7M+zvd74Mfkv2trAfZ1Xqvv8KjKWxGkgS68MpfE36I5ATIJHkJ9//366Ui9l9zjw9DaUSh2Yc1JMjFt81ih8qY= 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 1tKdUP-0004RA-PJ; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7J-1X; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wx6-0b; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 02/11] net: usb: lan78xx: Add error handling to lan78xx_init_mac_address Date: Mon, 9 Dec 2024 14:07:42 +0100 Message-Id: <20241209130751.703182-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Convert `lan78xx_init_mac_address` to return error codes and handle failures in register read and write operations. Update `lan78xx_reset` to check for errors during MAC address initialization and propagate them appropriately. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 070b21baffaf..26dc43bac84b 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2153,13 +2153,19 @@ static const struct ethtool_ops lan78xx_ethtool_ops= =3D { .get_regs =3D lan78xx_get_regs, }; =20 -static void lan78xx_init_mac_address(struct lan78xx_net *dev) +static int lan78xx_init_mac_address(struct lan78xx_net *dev) { u32 addr_lo, addr_hi; u8 addr[6]; + int ret; + + ret =3D lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); + if (ret < 0) + return ret; =20 - lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); - lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); + ret =3D lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); + if (ret < 0) + return ret; =20 addr[0] =3D addr_lo & 0xFF; addr[1] =3D (addr_lo >> 8) & 0xFF; @@ -2192,14 +2198,26 @@ static void lan78xx_init_mac_address(struct lan78xx= _net *dev) (addr[2] << 16) | (addr[3] << 24); addr_hi =3D addr[4] | (addr[5] << 8); =20 - lan78xx_write_reg(dev, RX_ADDRL, addr_lo); - lan78xx_write_reg(dev, RX_ADDRH, addr_hi); + ret =3D lan78xx_write_reg(dev, RX_ADDRL, addr_lo); + if (ret < 0) + return ret; + + ret =3D lan78xx_write_reg(dev, RX_ADDRH, addr_hi); + if (ret < 0) + return ret; } =20 - lan78xx_write_reg(dev, MAF_LO(0), addr_lo); - lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); + ret =3D lan78xx_write_reg(dev, MAF_LO(0), addr_lo); + if (ret < 0) + return ret; + + ret =3D lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); + if (ret < 0) + return ret; =20 eth_hw_addr_set(dev->net, addr); + + return 0; } =20 /* MDIO read and write wrappers for phylib */ @@ -2990,7 +3008,9 @@ static int lan78xx_reset(struct lan78xx_net *dev) } } while (buf & HW_CFG_LRST_); =20 - lan78xx_init_mac_address(dev); + ret =3D lan78xx_init_mac_address(dev); + if (ret < 0) + return ret; =20 /* save DEVID for later usage */ ret =3D lan78xx_read_reg(dev, ID_REV, &buf); --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 EC4881C5CA9 for ; Mon, 9 Dec 2024 13:08:01 +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=1733749683; cv=none; b=rZKQN/N1cOXkzNvj9ktKbJO87B5kqXUSQFVsdcr2sHjiYh9Hxa0WposIVxKixlxxgxvdRDHRBamBfGA36bcmdLtD3BRqhTo5g2EyNzPWKd7wDqW/oOgK1U1shXIto1g6KtkCKy5xN3kzQRn43CON7QlYM27PmR2RoEF9jHXJKrY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749683; c=relaxed/simple; bh=PhXQ00/lGrLiI8+Ecv2+tDmvO0EzcGbWyO3HQgAQ3j8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aDHF0njat4QmUkalabs3CJ6XwZXxvshIzkamfJURfMGdQcbx4yBe5yy4ia4MhjAMt/ZYJ3ed0QWjMrG/yHYH8ZuoyWYRZuyabYvrEZwHjQaNHmFm3MPpRIdXmyLMpcPMK4YjPcEn1x7s1D2KV6POyKszn+trNUJCmEWx7rDCBOE= 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 1tKdUP-0004RB-PL; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7K-1b; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wxG-0e; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 03/11] net: usb: lan78xx: Add error handling to lan78xx_set_mac_addr Date: Mon, 9 Dec 2024 14:07:43 +0100 Message-Id: <20241209130751.703182-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_set_mac_addr` to handle errors during MAC address register write operations. Ensure that errors are properly propagated to the caller, improving the robustness of MAC address updates. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 26dc43bac84b..5d318ff8b33d 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2763,6 +2763,7 @@ static int lan78xx_set_mac_addr(struct net_device *ne= tdev, void *p) struct lan78xx_net *dev =3D netdev_priv(netdev); struct sockaddr *addr =3D p; u32 addr_lo, addr_hi; + int ret; =20 if (netif_running(netdev)) return -EBUSY; @@ -2779,14 +2780,20 @@ static int lan78xx_set_mac_addr(struct net_device *= netdev, void *p) addr_hi =3D netdev->dev_addr[4] | netdev->dev_addr[5] << 8; =20 - lan78xx_write_reg(dev, RX_ADDRL, addr_lo); - lan78xx_write_reg(dev, RX_ADDRH, addr_hi); + ret =3D lan78xx_write_reg(dev, RX_ADDRL, addr_lo); + if (ret < 0) + return ret; + + ret =3D lan78xx_write_reg(dev, RX_ADDRH, addr_hi); + if (ret < 0) + return ret; =20 /* Added to support MAC address changes */ - lan78xx_write_reg(dev, MAF_LO(0), addr_lo); - lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); + ret =3D lan78xx_write_reg(dev, MAF_LO(0), addr_lo); + if (ret < 0) + return ret; =20 - return 0; + return lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); } =20 /* Enable or disable Rx checksum offload engine */ --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 E00C01C5CB3 for ; Mon, 9 Dec 2024 13:08:02 +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=1733749686; cv=none; b=BKKV7m8gyU30U8OMK5MRjsuRRSMbjUahTt+LPo44bW3laUHzPXVMR7J5q9LjCnJPrLvqXuinqJb1Rpn2E92SJsTJp/fwyPga4jvrTwkkladzHPRLivGXSqkeQFlSA9vsULhhPy8fmr/p1NxREUnvHILDkSpgNvKM+yhl7qVkEQk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749686; c=relaxed/simple; bh=GYRH3OO6qC3Ffui5fJ/M7pAjCmNdhEieICbOAvKK978=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jlcO9Fgzklm+D79U3IqGxsi0IiiPBhshvDX2spw85ASb1n4mhTqaFwjkhm34nJGgCAk+H/UMX5BAkF+N6bkNpcoGCTuiC5mJMn9i0zowRJBvCJhhwFLgCpItb9NA9YPeQ9gyBPIM5FZAu1dlLvctVosv9AkCEO0tpxTSiTlhnj4= 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 1tKdUP-0004RC-PK; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7L-1i; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wxQ-0h; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 04/11] net: usb: lan78xx: Add error handling to lan78xx_get_regs Date: Mon, 9 Dec 2024 14:07:44 +0100 Message-Id: <20241209130751.703182-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_get_regs` to handle errors during register and PHY reads. Log warnings for failed reads and exit the function early if an error occurs. This ensures that invalid data is not returned to users. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 5d318ff8b33d..62445aced7c6 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2112,20 +2112,35 @@ static void lan78xx_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *buf) { - u32 *data =3D buf; - int i, j; struct lan78xx_net *dev =3D netdev_priv(netdev); + u32 *data =3D buf; + int i, j, ret; =20 /* Read Device/MAC registers */ - for (i =3D 0; i < ARRAY_SIZE(lan78xx_regs); i++) - lan78xx_read_reg(dev, lan78xx_regs[i], &data[i]); + for (i =3D 0; i < ARRAY_SIZE(lan78xx_regs); i++) { + ret =3D lan78xx_read_reg(dev, lan78xx_regs[i], &data[i]); + if (ret < 0) { + netdev_warn(dev->net, + "failed to read register 0x%08x\n", + lan78xx_regs[i]); + return; + } + } =20 if (!netdev->phydev) return; =20 /* Read PHY registers */ - for (j =3D 0; j < 32; i++, j++) - data[i] =3D phy_read(netdev->phydev, j); + for (j =3D 0; j < 32; i++, j++) { + ret =3D phy_read(netdev->phydev, j); + if (ret < 0) { + netdev_warn(dev->net, + "failed to read PHY register 0x%02x\n", j); + return; + } + + data[i] =3D ret; + } } =20 static const struct ethtool_ops lan78xx_ethtool_ops =3D { --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 7F0F51C5CBE for ; Mon, 9 Dec 2024 13:08:02 +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=1733749686; cv=none; b=lH+H+WlIKBD9hC1M4E1GOZlgoJjKN93LJj17/4yZb0CahOjEpHiKIVdpcPa1HreN9BSg0cbs54IoXYQnPlCkwH6RnQQS+r1Cy9h2346UUeJ2kpRsPn1RpzbWzouRlXjX4ZMA9VfFaWu5rK3r4d1EG7/t6oZr/u+34Rj3pt4TKR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749686; c=relaxed/simple; bh=yMNQTkZCI8deJ9eeD2IQ3mD/E82jKzEvFmwgNDLkToE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=m07omvyeYm/2VU6Nr6U64YHoCKhDqT0COOCsqB3BQBVXt/Z8aRGvk5V6jGe0cy4sGP/Eq1zsr/a1MZCI7SM4rRLGUP9odHQUKxbbXX0Wrlm2LBH5V6p3qMYLFeb7T38FMxC57u9Ui+MeT5hDptykL0kPdc6jKSdh2U5B7LIwyzE= 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 1tKdUP-0004RD-PJ; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7M-1m; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wxa-0k; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 05/11] net: usb: lan78xx: Simplify lan78xx_update_reg Date: Mon, 9 Dec 2024 14:07:45 +0100 Message-Id: <20241209130751.703182-6-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Simplify `lan78xx_update_reg` by directly returning the result of `lan78xx_write_reg`. This eliminates unnecessary checks and improves code readability. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 62445aced7c6..b6e6c090a072 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -674,11 +674,7 @@ static int lan78xx_update_reg(struct lan78xx_net *dev,= u32 reg, u32 mask, buf &=3D ~mask; buf |=3D (mask & data); =20 - ret =3D lan78xx_write_reg(dev, reg, buf); - if (ret < 0) - return ret; - - return 0; + return lan78xx_write_reg(dev, reg, buf); } =20 static int lan78xx_read_stats(struct lan78xx_net *dev, --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 573521C5CD8 for ; Mon, 9 Dec 2024 13:08:04 +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=1733749686; cv=none; b=Qizm0eB75tFz59f98SYfxMy/jTg7kXrmnzcjoEYwaOBWUje4GGccZMZyyoKyCqzwCYMZiJhZD/U28+2ZAOwBxlG/avfr9WSuD7zNLl0dqGOvQLQnTnQiT2LZJZxdgBB/Ou99W/tbr9SMzxSSmazxPeHZ9H49IizFsxyrESjOvTQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749686; c=relaxed/simple; bh=P4TjaIKGSZHezFy00zzFiYLSOnURtxLh21+nrJq0HhU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rJJPO5Rc7JNruzF9UxKcnPCrVQuQ/ekGhwVgRuk2JZkxcvkpwL+d0gDyDmwD++9cCq5mN/S0pyGN/+IS70NU1XnMuD+wI2uKL43ChvTTtcDHDPm2Z92QJ17nyp03d+6BdRiuGJYECQ9ss5szETBCLOqgI3bx2ZkHazNfgomdit8= 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 1tKdUT-0004RF-Ou; Mon, 09 Dec 2024 14:07:57 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7O-1s; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wxk-0n; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 06/11] net: usb: lan78xx: Fix return value handling in lan78xx_set_features Date: Mon, 9 Dec 2024 14:07:46 +0100 Message-Id: <20241209130751.703182-7-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_set_features` to correctly return the result of `lan78xx_write_reg`. This ensures that errors during register writes are propagated to the caller. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index b6e6c090a072..2966f7e63617 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2837,9 +2837,7 @@ static int lan78xx_set_features(struct net_device *ne= tdev, =20 spin_unlock_irqrestore(&pdata->rfe_ctl_lock, flags); =20 - lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); - - return 0; + return lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); } =20 static void lan78xx_deferred_vlan_write(struct work_struct *param) --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 5AF0F1B4227 for ; Mon, 9 Dec 2024 13:08:02 +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=1733749683; cv=none; b=Xwn7vLH08CScenV+ieEaISIkN6PGFd0wLeyhLziBAnrWKwfjTXaI3YCtkyaxls46e3zMCm7rrxq9LcZ2pq+cSL6GVi9tsjwzNi1P403g62S/mPonczGfL0/SY0H2P099hF4AwKG3TB+aTDVa+mzN3fqtqM5Om+0MLF1hHXEhL+k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749683; c=relaxed/simple; bh=g/OKuduUhe2JFrdTAfNDAaDkWJEOzOP2KVvW6wG+NzQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ltNbbYnTC5TEIUZC5UNDNfjfaC23WKs0SPW+ACdaJIwoiXSTF0YBZ+4xkGeFYboVgGgtYny6I3ZgIr6g1deD0/7LAeJmPSTkaWgfXUhvZ1279WIBH5Zatwfr3tqxmAOgGd/D03udac7l16o11O1P5Uvun9B0LtSN5plTOVDSGB4= 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 1tKdUP-0004RG-PJ; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7R-1v; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wxu-0q; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 07/11] net: usb: lan78xx: Use ETIMEDOUT instead of ETIME in lan78xx_stop_hw Date: Mon, 9 Dec 2024 14:07:47 +0100 Message-Id: <20241209130751.703182-8-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_stop_hw` to return `-ETIMEDOUT` instead of `-ETIME` when a timeout occurs. While `-ETIME` indicates a general timer expiration, `-ETIMEDOUT` is more commonly used for signaling operation timeouts and provides better consistency with standard error handling in the driver. Signed-off-by: Oleksij Rempel --- drivers/net/usb/lan78xx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 2966f7e63617..c66e404f51ac 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -844,9 +844,7 @@ static int lan78xx_stop_hw(struct lan78xx_net *dev, u32= reg, u32 hw_enabled, } while (!stopped && !time_after(jiffies, timeout)); } =20 - ret =3D stopped ? 0 : -ETIME; - - return ret; + return stopped ? 0 : -ETIMEDOUT; } =20 static int lan78xx_flush_fifo(struct lan78xx_net *dev, u32 reg, u32 fifo_f= lush) --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 E006D1C5CB2 for ; Mon, 9 Dec 2024 13:08:02 +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=1733749685; cv=none; b=Pl8EdFZ9cQNKFjVSLocgaroJDYUJH4acCIzUe+4MpCmkwbnIFYEyisuSt0c5CuOF9yx4CZo2jZgLfCvVUmDPbV1LouaD8WXAoY32oRQ1lteCcoc2iXOAGveDFQKn9anCRTMlz+6K4Z9mTWz4PueK7Rhm4VulQ2ZbT1unAzFGvMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749685; c=relaxed/simple; bh=R4/0zDSvXQ7j2t6w8Tqa4xvfeIvEbrVq6ZRm2VJWwpg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=M8HksBdbfPIXC0RKB9uVCYBsSl6YYZDAe0BdIYY9+vIpC3Lh6vGr7mhkTbs/tL6vncjTg1TNMQt6I/eed3uNyxSzF93QXN+X/ho6OsofT6ujvKvPubsyAnYHGoyspVTg1RHr5ivd6MKTDc9g/GLod5VDfDJlrvPh1e5Dz834g5o= 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 1tKdUP-0004RH-PL; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7T-24; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wy5-0u; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 08/11] net: usb: lan78xx: Use function-specific label in lan78xx_mac_reset Date: Mon, 9 Dec 2024 14:07:48 +0100 Message-Id: <20241209130751.703182-9-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Rename the generic `done` label to the function-specific `mac_reset_done` label in `lan78xx_mac_reset`. This improves clarity and aligns with best practices for error handling and cleanup labels. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index c66e404f51ac..fdeb95db529b 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -1604,16 +1604,16 @@ static int lan78xx_mac_reset(struct lan78xx_net *de= v) */ ret =3D lan78xx_phy_wait_not_busy(dev); if (ret < 0) - goto done; + goto mac_reset_done; =20 ret =3D lan78xx_read_reg(dev, MAC_CR, &val); if (ret < 0) - goto done; + goto mac_reset_done; =20 val |=3D MAC_CR_RST_; ret =3D lan78xx_write_reg(dev, MAC_CR, val); if (ret < 0) - goto done; + goto mac_reset_done; =20 /* Wait for the reset to complete before allowing any further * MAC register accesses otherwise the MAC may lock up. @@ -1621,16 +1621,16 @@ static int lan78xx_mac_reset(struct lan78xx_net *de= v) do { ret =3D lan78xx_read_reg(dev, MAC_CR, &val); if (ret < 0) - goto done; + goto mac_reset_done; =20 if (!(val & MAC_CR_RST_)) { ret =3D 0; - goto done; + goto mac_reset_done; } } while (!time_after(jiffies, start_time + HZ)); =20 ret =3D -ETIMEDOUT; -done: +mac_reset_done: mutex_unlock(&dev->phy_mutex); =20 return ret; --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 050411C5CAA for ; Mon, 9 Dec 2024 13:08:01 +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=1733749683; cv=none; b=eN9OF62c6Mx/QFSyDl2OkvHo3aD6TJojTD5NcOe9VgMOR+j1AsVQ7my4vPxjQL7MzRerFT2+bjR/itae2+YNw4c2rKBFrD4KEJDHeEzs9VKnsmjlscCbCQhEMPOUO6zCrqr06dF5qUpHLeVQ/aogs4t3j8qilUPJ8L1xKEpPb1o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749683; c=relaxed/simple; bh=kCCfcs5qWKbWNrkYGX7ewBGKk+ZoMqqsF7UlhigcN4o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=afXsowliHGqJL8q9MiamwVPhOo/vUavTSJ7eL1Vlb956SeUvaqBbSHGg8p068HLJO5vXogBI9wCAF76FAMN6DGGvjY8rb75cOIfNIoen4q9Xm18FIAE6eLv/htDLBHR/VSY4U6ahiV5HkItoHWpuhtTWymnq4YujmBcDBa28kgI= 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 1tKdUP-0004RE-PK; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7V-1x; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wyG-0x; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 09/11] net: usb: lan78xx: Improve error handling in lan78xx_phy_wait_not_busy Date: Mon, 9 Dec 2024 14:07:49 +0100 Message-Id: <20241209130751.703182-10-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Update `lan78xx_phy_wait_not_busy` to forward errors from `lan78xx_read_reg` instead of overwriting them with `-EIO`. Replace `-EIO` with `-ETIMEDOUT` for timeout cases, providing more specific and appropriate error codes. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index fdeb95db529b..9852526be002 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -961,14 +961,14 @@ static int lan78xx_phy_wait_not_busy(struct lan78xx_n= et *dev) =20 do { ret =3D lan78xx_read_reg(dev, MII_ACC, &val); - if (unlikely(ret < 0)) - return -EIO; + if (ret < 0) + return ret; =20 if (!(val & MII_ACC_MII_BUSY_)) return 0; } while (!time_after(jiffies, start_time + HZ)); =20 - return -EIO; + return -ETIMEDOUT; } =20 static inline u32 mii_access(int id, int index, int read) --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 45D5D1B4259 for ; Mon, 9 Dec 2024 13:08:01 +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=1733749683; cv=none; b=tAmIhjjjFvYFAtdjFeI8BeJmi2kCjQzCbDvKe6BKCAdB00nQb0f85vjSSai8RQztoCDC5dgVLs9DYp3nGF+DgYU47cyNDaE+k6WIuLfL//sxZ9q0usPpxdqMRqHi70e0tgllwFYdxxI3z/Gk+4rA+YipgSZLN5ZeN2Ih/KDgC+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749683; c=relaxed/simple; bh=Mdid41HpR/uZUM79Qmv1K9Q8mfecEHCml7VhDgPU3vE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HkoLn2oH1wgvVl1mbI6JIaciiI3nHh2Uy1rh1l03DcneNX0x1ibfksexhTh5J6zemrxtTB+2LdoLtAedxLdHWb7VIIckkBG3dGXrcKUWJiiClsuf2FC3et2bwthoDHTv8Y/xSrg6wj70QsGB+JHv5SNNiGqAF4tp9yMN3e/Vrg0= 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 1tKdUP-0004RI-PL; Mon, 09 Dec 2024 14:07:53 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7X-2B; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wyR-10; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 10/11] net: usb: lan78xx: Rename lan78xx_phy_wait_not_busy to lan78xx_mdiobus_wait_not_busy Date: Mon, 9 Dec 2024 14:07:50 +0100 Message-Id: <20241209130751.703182-11-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Rename `lan78xx_phy_wait_not_busy` to `lan78xx_mdiobus_wait_not_busy` for clarity and accuracy, as the function operates on the MII bus rather than a specific PHY. Update all references to reflect the new name. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 9852526be002..0403aea1a9fa 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -953,7 +953,7 @@ static int lan78xx_flush_rx_fifo(struct lan78xx_net *de= v) } =20 /* Loop until the read is completed with timeout called with phy_mutex hel= d */ -static int lan78xx_phy_wait_not_busy(struct lan78xx_net *dev) +static int lan78xx_mdiobus_wait_not_busy(struct lan78xx_net *dev) { unsigned long start_time =3D jiffies; u32 val; @@ -1602,7 +1602,7 @@ static int lan78xx_mac_reset(struct lan78xx_net *dev) * bus can result in the MAC interface locking up and not * completing register access transactions. */ - ret =3D lan78xx_phy_wait_not_busy(dev); + ret =3D lan78xx_mdiobus_wait_not_busy(dev); if (ret < 0) goto mac_reset_done; =20 @@ -2243,7 +2243,7 @@ static int lan78xx_mdiobus_read(struct mii_bus *bus, = int phy_id, int idx) mutex_lock(&dev->phy_mutex); =20 /* confirm MII not busy */ - ret =3D lan78xx_phy_wait_not_busy(dev); + ret =3D lan78xx_mdiobus_wait_not_busy(dev); if (ret < 0) goto done; =20 @@ -2253,7 +2253,7 @@ static int lan78xx_mdiobus_read(struct mii_bus *bus, = int phy_id, int idx) if (ret < 0) goto done; =20 - ret =3D lan78xx_phy_wait_not_busy(dev); + ret =3D lan78xx_mdiobus_wait_not_busy(dev); if (ret < 0) goto done; =20 @@ -2284,7 +2284,7 @@ static int lan78xx_mdiobus_write(struct mii_bus *bus,= int phy_id, int idx, mutex_lock(&dev->phy_mutex); =20 /* confirm MII not busy */ - ret =3D lan78xx_phy_wait_not_busy(dev); + ret =3D lan78xx_mdiobus_wait_not_busy(dev); if (ret < 0) goto done; =20 @@ -2299,7 +2299,7 @@ static int lan78xx_mdiobus_write(struct mii_bus *bus,= int phy_id, int idx, if (ret < 0) goto done; =20 - ret =3D lan78xx_phy_wait_not_busy(dev); + ret =3D lan78xx_mdiobus_wait_not_busy(dev); if (ret < 0) goto done; =20 --=20 2.39.5 From nobody Wed Dec 17 16:11:07 2025 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 978F11C5CC4 for ; Mon, 9 Dec 2024 13:08:03 +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=1733749686; cv=none; b=QsOp7z0zRQkjOqnkZNJt2ZqDkQnQH+xiqXhbByvH1/fhLGCY8h5afNoQX3Z/fwfE1VV6fMV+/DyMmoVpiMdwmaM+IkiWxPTlawhexBd/txT+xfLsVfKUbt1lTRHolJAiCctzl1PKbgKtAbQyc3//f72TuPhduiZiT+jwdfoSEG0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733749686; c=relaxed/simple; bh=30LU4+4zbasvRm9xbPR0QPujuyYcs3Dswq1ogtdq/vw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OmtrWyjUCs6rFpx/tx5L+I0m2AWHXvBu4j10ebdGRUvQvra2xS/H19YYAHYByg9MsgTYo+U5qrir7vTaBtq4euAyGr4V3Tp9glSkSKRWI3wVogCm9jkk1fRoWYFy8II7R2JQ5pvgFrQsENkKLGIY0imR+sjkTOQbr6Tf9wQiF+Q= 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 1tKdUT-0004RJ-P7; Mon, 09 Dec 2024 14:07:57 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) 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 1tKdUN-002W7a-2D; Mon, 09 Dec 2024 14:07:52 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tKdUO-002wye-13; Mon, 09 Dec 2024 14:07:52 +0100 From: Oleksij Rempel To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Woojung Huh , Andrew Lunn Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, UNGLinuxDriver@microchip.com, Phil Elwell Subject: [PATCH net-next v1 11/11] net: usb: lan78xx: Improve error handling in WoL operations Date: Mon, 9 Dec 2024 14:07:51 +0100 Message-Id: <20241209130751.703182-12-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241209130751.703182-1-o.rempel@pengutronix.de> References: <20241209130751.703182-1-o.rempel@pengutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@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 Content-Type: text/plain; charset="utf-8" Enhance error handling in Wake-on-LAN (WoL) operations: - Log a warning in `lan78xx_get_wol` if `lan78xx_read_reg` fails. - Check and handle errors from `device_set_wakeup_enable` and `phy_ethtool_set_wol` in `lan78xx_set_wol`. - Ensure proper cleanup with a unified error handling path. Signed-off-by: Oleksij Rempel Reviewed-by: Andrew Lunn --- drivers/net/usb/lan78xx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 0403aea1a9fa..99c19ec1cb88 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -1857,6 +1857,7 @@ static void lan78xx_get_wol(struct net_device *netdev, =20 ret =3D lan78xx_read_reg(dev, USB_CFG0, &buf); if (unlikely(ret < 0)) { + netdev_warn(dev->net, "failed to get WoL %pe", ERR_PTR(ret)); wol->supported =3D 0; wol->wolopts =3D 0; } else { @@ -1888,10 +1889,13 @@ static int lan78xx_set_wol(struct net_device *netde= v, =20 pdata->wol =3D wol->wolopts; =20 - device_set_wakeup_enable(&dev->udev->dev, (bool)wol->wolopts); + ret =3D device_set_wakeup_enable(&dev->udev->dev, (bool)wol->wolopts); + if (ret < 0) + goto set_wol_done; =20 - phy_ethtool_set_wol(netdev->phydev, wol); + ret =3D phy_ethtool_set_wol(netdev->phydev, wol); =20 +set_wol_done: usb_autopm_put_interface(dev->intf); =20 return ret; --=20 2.39.5