--- x/drivers/net/usb/usbnet.c +++ y/drivers/net/usb/usbnet.c @@ -254,6 +254,8 @@ static int init_status (struct usbnet *d "status ep%din, %d bytes period %d\n", usb_pipeendpoint(pipe), maxp, period); } + } else { + return -ENOMEM; } return 0; } @@ -1812,7 +1814,7 @@ usbnet_probe (struct usb_interface *udev if (status == 0 && !usb_check_bulk_endpoints(udev, ep_addrs)) status = -EINVAL; } - if (status >= 0 && dev->status) + if (status >= 0) status = init_status (dev, udev); if (status < 0) goto out3;