Index: uspace/drv/bus/usb/uhci/hc.c
===================================================================
--- uspace/drv/bus/usb/uhci/hc.c	(revision 63431db22d38ba4867125d47d6fc3180e8026b8b)
+++ uspace/drv/bus/usb/uhci/hc.c	(revision 5e2b1ae6fe35b358dd5e76f6cedd1d7991973fe2)
@@ -388,9 +388,7 @@
 int hc_init_mem_structures(hc_t *instance, hc_device_t *hcd)
 {
-	int err;
 	assert(instance);
 
-	if ((err = usb2_bus_init(&instance->bus, BANDWIDTH_AVAILABLE_USB11)))
-		return err;
+	usb2_bus_init(&instance->bus, BANDWIDTH_AVAILABLE_USB11);
 
 	bus_t *bus = (bus_t *) &instance->bus;
Index: uspace/drv/bus/usb/usbhub/port.c
===================================================================
--- uspace/drv/bus/usb/usbhub/port.c	(revision 63431db22d38ba4867125d47d6fc3180e8026b8b)
+++ uspace/drv/bus/usb/usbhub/port.c	(revision 5e2b1ae6fe35b358dd5e76f6cedd1d7991973fe2)
@@ -406,5 +406,5 @@
 
 	/* Reserve default address */
-	while ((ret = usbhc_reserve_default_address(exch, speed)) == ENOENT) {
+	while ((ret = usbhc_reserve_default_address(exch, speed)) == EAGAIN) {
 		async_usleep(1000000);
 	}
Index: uspace/drv/bus/usb/xhci/bus.c
===================================================================
--- uspace/drv/bus/usb/xhci/bus.c	(revision 63431db22d38ba4867125d47d6fc3180e8026b8b)
+++ uspace/drv/bus/usb/xhci/bus.c	(revision 5e2b1ae6fe35b358dd5e76f6cedd1d7991973fe2)
@@ -426,24 +426,4 @@
 }
 
-static int reserve_default_address(bus_t *bus_base, usb_speed_t speed)
-{
-	xhci_bus_t *xhci_bus = bus_to_xhci_bus(bus_base);
-
-	if (xhci_bus->default_address_speed != USB_SPEED_MAX)
-		/* Already allocated */
-		return ENOENT;
-
-	xhci_bus->default_address_speed = speed;
-	return EOK;
-}
-
-static int release_default_address(bus_t *bus_base)
-{
-	xhci_bus_t *xhci_bus = bus_to_xhci_bus(bus_base);
-
-	xhci_bus->default_address_speed = USB_SPEED_MAX;
-	return EOK;
-}
-
 static usb_transfer_batch_t *batch_create(endpoint_t *ep)
 {
@@ -461,7 +441,4 @@
 // TODO: Is it good idea to use this macro? It blurrs the fact that the callbacks and static functions are called the same.
 #define BIND_OP(op) .op = op,
-	BIND_OP(reserve_default_address)
-	BIND_OP(release_default_address)
-
 	BIND_OP(device_enumerate)
 	BIND_OP(device_remove)
@@ -501,5 +478,4 @@
 	bus->hc = hc;
 	bus->base.ops = &xhci_bus_ops;
-	bus->default_address_speed = USB_SPEED_MAX;
 	return EOK;
 }
Index: uspace/drv/bus/usb/xhci/bus.h
===================================================================
--- uspace/drv/bus/usb/xhci/bus.h	(revision 63431db22d38ba4867125d47d6fc3180e8026b8b)
+++ uspace/drv/bus/usb/xhci/bus.h	(revision 5e2b1ae6fe35b358dd5e76f6cedd1d7991973fe2)
@@ -51,6 +51,4 @@
 
 	xhci_device_t **devices_by_slot;	/**< Devices by Slot ID */
-
-	usb_speed_t default_address_speed;	/**< Used to get speed from usb hubs */
 } xhci_bus_t;
 
