diff options
Diffstat (limited to 'payloads/libpayload/drivers/usb/uhci_rh.c')
-rw-r--r-- | payloads/libpayload/drivers/usb/uhci_rh.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/payloads/libpayload/drivers/usb/uhci_rh.c b/payloads/libpayload/drivers/usb/uhci_rh.c index 5cb18b9516..4668c4ecae 100644 --- a/payloads/libpayload/drivers/usb/uhci_rh.c +++ b/payloads/libpayload/drivers/usb/uhci_rh.c @@ -176,6 +176,8 @@ uhci_rh_report_port_changes (usbdev_t *dev) static void uhci_rh_destroy (usbdev_t *dev) { + usb_detach_device (dev->controller, 1); + usb_detach_device (dev->controller, 2); uhci_rh_disable_port (dev, 1); uhci_rh_disable_port (dev, 2); free (RH_INST (dev)); @@ -197,9 +199,7 @@ uhci_rh_init (usbdev_t *dev) uhci_rh_enable_port (dev, 1); uhci_rh_enable_port (dev, 2); - dev->data = malloc (sizeof (rh_inst_t)); - if (!dev->data) - fatal("Not enough memory for UHCI RH.\n"); + dev->data = xmalloc (sizeof (rh_inst_t)); RH_INST (dev)->port[0] = -1; RH_INST (dev)->port[1] = -1; |