diff --git a/ChangeLog b/ChangeLog index 941b02e416..4e1a5c574c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5919,4 +5919,9 @@ header file (2013-10-31). * drivers/mtd/mtd_partition.c: Fix erase block vs page block confusion. From Ken Pettit (2013-10-31). + * arch/arm/src/stm32/stm32_usbdev.c: On a failure to bind the class + driver, the driver reference was being nullified too soon. This + caused an exception in usbdev_reset() later. The driver reference + will be nullified later usbdev_unregister when the caller gets the + error. From David Sidrane (2013-10-31). diff --git a/arch/arm/src/stm32/stm32_usbdev.c b/arch/arm/src/stm32/stm32_usbdev.c index d35e707c3a..77b569476a 100644 --- a/arch/arm/src/stm32/stm32_usbdev.c +++ b/arch/arm/src/stm32/stm32_usbdev.c @@ -3637,7 +3637,6 @@ int usbdev_register(struct usbdevclass_driver_s *driver) if (ret) { usbtrace(TRACE_DEVERROR(STM32_TRACEERR_BINDFAILED), (uint16_t)-ret); - priv->driver = NULL; } else {