Messages in this thread Patch in this message | | | Date | Thu, 13 Mar 2008 15:58:49 +0100 | From | Ingo van Lil <> | Subject | [PATCH] Fix nested switch statements in dummy_hcd.c |
| |
Hello everybody,
this patch fixes a messed up combination of two nested switch statements in drivers/usb/gadget/dummy_hcd.c. According to the USB spec (section 5.8.3) the maximum packet size for bulk endpoints can be 512 for high-speed devices and 8, 16, 32 or 64 for full-speed devices. Low-speed devices must not have bulk endpoints.
Cheers, Ingo
Signed-off-by: Ingo van Lil <inguin@gmx.de> ---
--- linux-2.6.23.1/drivers/usb/gadget/dummy_hcd.c.orig 2008-03-13 15:45:35.000000000 +0100 +++ linux-2.6.23.1/drivers/usb/gadget/dummy_hcd.c 2008-03-13 15:45:39.000000000 +0100 @@ -363,16 +363,14 @@ case USB_SPEED_HIGH: if (max == 512) break; - /* conserve return statements */ - default: - switch (max) { - case 8: case 16: case 32: case 64: + goto done; + case USB_SPEED_FULL: + if (max == 8 || max == 16 || max == 32 || max == 64) /* we'll fake any legal size */ break; - default: - case USB_SPEED_LOW: - goto done; - } + /* save a return statement */ + default: + goto done; } break; case USB_ENDPOINT_XFER_INT:
| |