diff options
Diffstat (limited to 'drivers/net/usb/usbnet.c')
| -rw-r--r-- | drivers/net/usb/usbnet.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 283ffddda821..2d14b0d78541 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -1775,6 +1775,10 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)  	} else if (!info->in || !info->out)  		status = usbnet_get_endpoints (dev, udev);  	else { +		u8 ep_addrs[3] = { +			info->in + USB_DIR_IN, info->out + USB_DIR_OUT, 0 +		}; +  		dev->in = usb_rcvbulkpipe (xdev, info->in);  		dev->out = usb_sndbulkpipe (xdev, info->out);  		if (!(info->flags & FLAG_NO_SETINT)) @@ -1784,6 +1788,8 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)  		else  			status = 0; +		if (status == 0 && !usb_check_bulk_endpoints(udev, ep_addrs)) +			status = -EINVAL;  	}  	if (status >= 0 && dev->status)  		status = init_status (dev, udev);  |