aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2022-10-12 21:57:54 +0200
committerSimon Glass <sjg@chromium.org>2022-10-17 21:17:12 -0600
commit2cb43ef1c22302820061d4d11ddce85872e993e1 (patch)
tree2989e9d64589c76404fec6e225a17d99987a8dac
parent28a22cd9a482b947b21646ae595e3284cdea3002 (diff)
downloadu-boot-2cb43ef1c22302820061d4d11ddce85872e993e1.zip
u-boot-2cb43ef1c22302820061d4d11ddce85872e993e1.tar.gz
u-boot-2cb43ef1c22302820061d4d11ddce85872e993e1.tar.bz2
usb: ether: Fix error handling in usb_ether_init
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> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/usb/gadget/ether.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 6ce389d..43aec7f 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;
}