We need to bail out if lan78xx_get_endpoints() fails, otherwise the
result is overwritten.

Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 
Ethernet")
Signed-off-by: Stefan Wahren <stefan.wah...@i2se.com>
Reviewed-by: Raghuram Chary Jallipalli <raghuramchary.jallipa...@microchip.com>
---
 drivers/net/usb/lan78xx.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index a9991c5..3f70b94 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -2952,6 +2952,11 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct 
usb_interface *intf)
        int i;
 
        ret = lan78xx_get_endpoints(dev, intf);
+       if (ret) {
+               netdev_warn(dev->net, "lan78xx_get_endpoints failed: %d\n",
+                           ret);
+               return ret;
+       }
 
        dev->data[0] = (unsigned long)kzalloc(sizeof(*pdata), GFP_KERNEL);
 
-- 
2.7.4

Reply via email to