diff --git a/core/usbh_core.c b/core/usbh_core.c index 18df49c3..b2721b36 100644 --- a/core/usbh_core.c +++ b/core/usbh_core.c @@ -81,7 +81,9 @@ static int __usbh_free_devaddr(struct usbh_devaddr_map *devgen, uint8_t devaddr) static int usbh_free_devaddr(struct usbh_hubport *hport) { - hport->dev_addr = 0; + if (hport->dev_addr > 0) { + __usbh_free_devaddr(&hport->bus->devgen, hport->dev_addr); + } return 0; }