diff mbox series

[v4,09/21] usb: ether: Fix error handling in usb_ether_init

Message ID 03f3ea7aab287e15179a8c857db713e9cb7ee27a.1664093812.git.msuchanek@suse.de
State Superseded
Delegated to: Simon Glass
Headers show
Series Do not stop uclass iteration on error | expand

Commit Message

Michal Suchánek Sept. 25, 2022, 8:28 a.m. UTC
The code checks the return value from uclass_first_device as well as
that the device exists but it passes on the return value which may be
zero if there are no gadget devices. Just check that a device was
returned and return -ENODEV otherwise.

Also remove the dev variable which is not really used for anything.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
 drivers/usb/gadget/ether.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

Comments

Simon Glass Sept. 29, 2022, 10 a.m. UTC | #1
On Sun, 25 Sept 2022 at 02:30, Michal Suchanek <msuchanek@suse.de> wrote:
>
> The code checks the return value from uclass_first_device as well as
> that the device exists but it passes on the return value which may be
> zero if there are no gadget devices. Just check that a device was
> returned and return -ENODEV otherwise.
>
> Also remove the dev variable which is not really used for anything.
>
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>
> ---
>  drivers/usb/gadget/ether.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
diff mbox series

Patch

diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index abb5332f13..ad394c80fc 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2636,18 +2636,17 @@  static const struct eth_ops usb_eth_ops = {
 
 int usb_ether_init(void)
 {
-	struct udevice *dev;
 	struct udevice *usb_dev;
 	int ret;
 
-	ret = uclass_first_device(UCLASS_USB_GADGET_GENERIC, &usb_dev);
-	if (!usb_dev || ret) {
+	uclass_first_device(UCLASS_USB_GADGET_GENERIC, &usb_dev);
+	if (!usb_dev) {
 		pr_err("No USB device found\n");
-		return ret;
+		return -ENODEV;
 	}
 
-	ret = device_bind_driver(usb_dev, "usb_ether", "usb_ether", &dev);
-	if (!dev || ret) {
+	ret = device_bind_driver(usb_dev, "usb_ether", "usb_ether", NULL);
+	if (ret) {
 		pr_err("usb - not able to bind usb_ether device\n");
 		return ret;
 	}