aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2011-03-23 16:36:17 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-04-29 20:24:30 -0400
commit1744020ceb86c83d8116d28c7bdd221d071ca213 (patch)
tree30fd65f463bbfd1a166bc1b9150a591489ff5bd3 /drivers/usb/gadget
parent25a73c6ce7f3b7b667a11a116d9607d6d5bf5cab (diff)
USB: dbgp gadget: fix return value of dbgp_setup
Current code returns 0 even if it can't handle the request. This leads to timeouts when an unhandled request is sent: Bus 001 Device 003: ID 0525:c0de Netchip Technology, Inc. Device Descriptor: [..] can't get device qualifier: Connection timed out [..] change the code to return EOPNOTSUPP in such cases. Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/dbgp.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/usb/gadget/dbgp.c b/drivers/usb/gadget/dbgp.c
index e5ac8a316fec..2932b48da0f9 100644
--- a/drivers/usb/gadget/dbgp.c
+++ b/drivers/usb/gadget/dbgp.c
@@ -350,9 +350,9 @@ static int dbgp_setup(struct usb_gadget *gadget,
350 u8 request = ctrl->bRequest; 350 u8 request = ctrl->bRequest;
351 u16 value = le16_to_cpu(ctrl->wValue); 351 u16 value = le16_to_cpu(ctrl->wValue);
352 u16 length = le16_to_cpu(ctrl->wLength); 352 u16 length = le16_to_cpu(ctrl->wLength);
353 int err = 0; 353 int err = -EOPNOTSUPP;
354 void *data; 354 void *data = NULL;
355 u16 len; 355 u16 len = 0;
356 356
357 gadget->ep0->driver_data = gadget; 357 gadget->ep0->driver_data = gadget;
358 358
@@ -371,10 +371,9 @@ static int dbgp_setup(struct usb_gadget *gadget,
371 default: 371 default:
372 goto fail; 372 goto fail;
373 } 373 }
374 err = 0;
374 } else if (request == USB_REQ_SET_FEATURE && 375 } else if (request == USB_REQ_SET_FEATURE &&
375 value == USB_DEVICE_DEBUG_MODE) { 376 value == USB_DEVICE_DEBUG_MODE) {
376 len = 0;
377 data = NULL;
378 dev_dbg(&dbgp.gadget->dev, "setup: feat debug\n"); 377 dev_dbg(&dbgp.gadget->dev, "setup: feat debug\n");
379#ifdef CONFIG_USB_G_DBGP_PRINTK 378#ifdef CONFIG_USB_G_DBGP_PRINTK
380 err = dbgp_enable_ep(); 379 err = dbgp_enable_ep();