Commit be5d01f1 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: es2: fix probe error handling

Make sure to return -ENODEV when the expected endpoints are missing and
stop relying on a default error.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 74a5d93c
......@@ -938,7 +938,7 @@ static int ap_probe(struct usb_interface *interface,
struct usb_endpoint_descriptor *endpoint;
int bulk_in = 0;
int bulk_out = 0;
int retval = -ENOMEM;
int retval;
int i;
int num_cports;
int cport_id;
......@@ -1002,6 +1002,7 @@ static int ap_probe(struct usb_interface *interface,
}
if (bulk_in != NUM_BULKS || bulk_out != NUM_BULKS) {
dev_err(&udev->dev, "Not enough endpoints found in device, aborting!\n");
retval = -ENODEV;
goto error;
}
......@@ -1014,11 +1015,15 @@ static int ap_probe(struct usb_interface *interface,
u8 *buffer;
urb = usb_alloc_urb(0, GFP_KERNEL);
if (!urb)
if (!urb) {
retval = -ENOMEM;
goto error;
}
buffer = kmalloc(ES2_GBUF_MSG_SIZE_MAX, GFP_KERNEL);
if (!buffer)
if (!buffer) {
retval = -ENOMEM;
goto error;
}
usb_fill_bulk_urb(urb, udev,
usb_rcvbulkpipe(udev,
......@@ -1035,8 +1040,10 @@ static int ap_probe(struct usb_interface *interface,
struct urb *urb;
urb = usb_alloc_urb(0, GFP_KERNEL);
if (!urb)
if (!urb) {
retval = -ENOMEM;
goto error;
}
es2->cport_out_urb[i] = urb;
es2->cport_out_urb_busy[i] = false; /* just to be anal */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment