Index: uspace/lib/usbhost/src/bus.c
===================================================================
--- uspace/lib/usbhost/src/bus.c	(revision eeca8a6576e862d2b94e31531749315d4d938507)
+++ uspace/lib/usbhost/src/bus.c	(revision 740dafcdd0499e1f3387b2bd26ce4b4d7e9f1bae)
@@ -519,5 +519,6 @@
 	fibril_mutex_lock(&bus->guard);
 	if (bus->default_address_owner != dev) {
-		usb_log_error("Device %d tried to release address, which is not reserved for it.", dev->address);
+		usb_log_error("Device %d tried to release default address, "
+		    "which is not reserved for it.", dev->address);
 	} else {
 		bus->default_address_owner = NULL;
Index: uspace/lib/usbhost/src/ddf_helpers.c
===================================================================
--- uspace/lib/usbhost/src/ddf_helpers.c	(revision eeca8a6576e862d2b94e31531749315d4d938507)
+++ uspace/lib/usbhost/src/ddf_helpers.c	(revision 740dafcdd0499e1f3387b2bd26ce4b4d7e9f1bae)
@@ -114,9 +114,9 @@
 
 /**
- * DDF usbhc_iface callback. Calls the bus operation directly.
+ * DDF usbhc_iface callback. Calls the respective bus operation directly.
  *
  * @param fun DDF function of the device (hub) requesting the address.
  */
-static int reserve_default_address(ddf_fun_t *fun)
+static int default_address_reservation(ddf_fun_t *fun, bool reserve)
 {
 	assert(fun);
@@ -127,26 +127,11 @@
 	assert(dev);
 
-	usb_log_debug("Device %d requested default address", dev->address);
-	return bus_reserve_default_address(hcd->bus, dev);
-}
-
-/**
- * DDF usbhc_iface callback. Calls the bus operation directly.
- *
- * @param fun DDF function of the device (hub) releasing the address.
- */
-static int release_default_address(ddf_fun_t *fun)
-{
-	assert(fun);
-	hc_device_t *hcd = dev_to_hcd(ddf_fun_get_dev(fun));
-	device_t *dev = ddf_fun_data_get(fun);
-	assert(hcd);
-	assert(hcd->bus);
-	assert(dev);
-
-	usb_log_debug("Device %d released default address", dev->address);
-	bus_release_default_address(hcd->bus, dev);
-
-	return EOK;
+	usb_log_debug("Device %d %s default address", dev->address, reserve ? "requested" : "releasing");
+	if (reserve) {
+		return bus_reserve_default_address(hcd->bus, dev);
+	} else {
+		bus_release_default_address(hcd->bus, dev);
+		return EOK;
+	}
 }
 
@@ -169,5 +154,5 @@
 	int err;
 
-	usb_log_debug("Hub %d reported a new %s device on port: %u",
+	usb_log_debug("Hub %d reported a new %s speed device on port: %u",
 	    hub->address, usb_str_speed(speed), port);
 
@@ -310,6 +295,5 @@
 /** USB host controller interface */
 static usbhc_iface_t usbhc_iface = {
-	.reserve_default_address = reserve_default_address,
-	.release_default_address = release_default_address,
+	.default_address_reservation = default_address_reservation,
 
 	.device_enumerate = device_enumerate,
