From: Alex Sadovsky Date: Thu, 8 Jan 2015 17:51:10 +0000 (+0300) Subject: usb: gadget: pxa25x_udc: fix use-before-initialized bug X-Git-Tag: v2015.04-rc1~70^2~14 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c0978a94aa4eab52e8c634ac0a43af4b411921e3;p=u-boot usb: gadget: pxa25x_udc: fix use-before-initialized bug Fix use-before-initialized bug in pxa25x_udc driver. Function usb_gadget_register_driver calls udc_disable, and udc_disable calls pullup_off that uses dev->mach->udc_command. But dev->mach is initialized in usb_gadget_register_driver after calling udc_disable. This patch fixes the order of initialization. Signed-off-by: Alex Sadovsky --- diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index 8945c5b665..d4460b2dc7 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c @@ -1950,11 +1950,11 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) dev->watchdog.period = 5000 * CONFIG_SYS_HZ / 1000000; /* 5 ms */ dev->watchdog.function = udc_watchdog; + dev->mach = &mach_info; + udc_disable(dev); udc_reinit(dev); - dev->mach = &mach_info; - dev->gadget.name = "pxa2xx_udc"; retval = driver->bind(&dev->gadget); if (retval) {