[U-Boot] [PATCH 1/2] usb: gadget: composite: Fix NULL pointer crash in USB compliance test

Heiko Schocher hs at denx.de
Fri Jan 9 14:59:04 CET 2015


Hello Stefan,

Am 09.01.2015 14:54, schrieb Stefan Roese:
> On the DXR2 board (AM335x using MUSB) the USB compliance test suite
> (USB 2.0 Command Verifier) will cause the board to crash and reset
> upon the "BOS Descriptor Test - Addressed state". Here the output
> from the DRX2 while running this test:
>
> GADGET DRIVER: usb_dnl_dfu
> musb-hdrc: peripheral reset irq lost!
> composite_setup (776)
> data abort
> pc : [<87f693ac>]          lr : [<87f6911c>]
> sp : 86f33a58  ip : 00000000     fp : 86f3bbac
> r10: 00000f00  r9 : 86f33ef4     r8 : 86f37da8
> r7 : 00000005  r6 : 86f33a90     r5 : 00000000  r4 : 86f37e30
> r3 : 00000000  r2 : 00000000     r1 : 87f9c888  r0 : 00000016
> Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32
> Resetting CPU ...
>
> resetting ...
>
> By adding the case statement for USB_DT_BOS and therefore not running
> into the default case (jump to unkown label) this crash is fixed.
>
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Roger Meier <r.meier at siemens.com>
> Cc: Samuel Egli <samuel.egli at siemens.com>
> Cc: Enrico Leto <enrico.leto at siemens.com>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Lukasz Majewski <l.majewski at samsung.com>
> Cc: Marek Vasut <marex at denx.de>
> ---
>   drivers/usb/gadget/composite.c | 8 ++++++++
>   1 file changed, 8 insertions(+)

Thanks!

Acked-by: Heiko Schocher <hs at denx.de>

bye,
Heiko
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index a4c5606..98c2da6 100644
> --- a/drivers/usb/gadget/composite.c
> +++ b/drivers/usb/gadget/composite.c
> @@ -761,6 +761,14 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
>   			if (value >= 0)
>   				value = min(w_length, (u16) value);
>   			break;
> +		case USB_DT_BOS:
> +			/*
> +			 * The USB compliance test (USB 2.0 Command Verifier)
> +			 * issues this request. We should not run into the
> +			 * default path here. But return for now until
> +			 * the superspeed support is added.
> +			 */
> +			break;
>   		default:
>   			goto unknown;
>   		}
>

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list