Index: uspace/drv/bus/usb/ehci/ehci_bus.c
===================================================================
--- uspace/drv/bus/usb/ehci/ehci_bus.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/drv/bus/usb/ehci/ehci_bus.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -113,5 +113,5 @@
 }
 
-static int ehci_unregister_ep(endpoint_t *ep)
+static void ehci_unregister_ep(endpoint_t *ep)
 {
 	bus_t *bus_base = endpoint_get_bus(ep);
@@ -120,10 +120,6 @@
 	assert(ep);
 
-	const int err = usb2_bus_ops.endpoint_unregister(ep);
-	if (err)
-		return err;
-
+	usb2_bus_ops.endpoint_unregister(ep);
 	hc_dequeue_endpoint(bus->hc, ep);
-	return EOK;
 }
 
Index: uspace/drv/bus/usb/ohci/ohci_bus.c
===================================================================
--- uspace/drv/bus/usb/ohci/ohci_bus.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/drv/bus/usb/ohci/ohci_bus.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -118,15 +118,11 @@
 }
 
-static int ohci_unregister_ep(endpoint_t *ep)
+static void ohci_unregister_ep(endpoint_t *ep)
 {
 	ohci_bus_t *bus = (ohci_bus_t *) endpoint_get_bus(ep);
 	assert(ep);
 
-	const int err = usb2_bus_ops.endpoint_unregister(ep);
-	if (err)
-		return err;
-
+	usb2_bus_ops.endpoint_unregister(ep);
 	hc_dequeue_endpoint(bus->hc, ep);
-	return EOK;
 }
 
Index: uspace/drv/bus/usb/xhci/bus.c
===================================================================
--- uspace/drv/bus/usb/xhci/bus.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/drv/bus/usb/xhci/bus.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -193,6 +193,4 @@
 }
 
-static int endpoint_unregister(endpoint_t *);
-
 /**
  * Remove device from XHCI bus. Transition it to the offline state, abort all
@@ -205,5 +203,5 @@
  * @return Error code.
  */
-static int device_remove(device_t *dev)
+static void device_remove(device_t *dev)
 {
 	int err;
@@ -249,8 +247,5 @@
 			continue;
 
-		if ((err = endpoint_unregister(dev->endpoints[i]))) {
-			usb_log_warning("Failed to unregister endpoint " XHCI_EP_FMT ": %s",
-			    XHCI_EP_ARGS(*xhci_device_get_endpoint(xhci_dev, i)), str_error(err));
-		}
+		bus_endpoint_remove(dev->endpoints[i]);
 	}
 
@@ -258,6 +253,4 @@
 	/* XXX: Not a good idea, this method should not destroy devices. */
 	hcd_ddf_fun_destroy(dev);
-
-	return EOK;
 }
 
@@ -415,5 +408,5 @@
  * Bus callback.
  */
-static int endpoint_unregister(endpoint_t *ep_base)
+static void endpoint_unregister(endpoint_t *ep_base)
 {
 	int err;
@@ -433,6 +426,4 @@
 		    " the slot has already been disabled.", XHCI_EP_ARGS(*ep));
 	}
-
-	return EOK;
 }
 
Index: uspace/drv/bus/usb/xhci/rh.c
===================================================================
--- uspace/drv/bus/usb/xhci/rh.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/drv/bus/usb/xhci/rh.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -188,5 +188,4 @@
 {
 	assert(rh);
-	int err;
 
 	/* Find XHCI device by the port. */
@@ -207,8 +206,5 @@
 
 	/* Remove device from XHCI bus. */
-	if ((err = bus_device_remove(&dev->base))) {
-		usb_log_warning("Failed to remove device " XHCI_DEV_FMT " from XHCI bus: %s",
-		    XHCI_DEV_ARGS(*dev), str_error(err));
-	}
+	bus_device_remove(&dev->base);
 
 	return EOK;
Index: uspace/lib/usbhost/include/usb/host/bus.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/bus.h	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/lib/usbhost/include/usb/host/bus.h	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -103,5 +103,5 @@
 	/* Operations on device */
 	int (*device_enumerate)(device_t *);
-	int (*device_remove)(device_t *);
+	void (*device_remove)(device_t *);
 	int (*device_online)(device_t *);			/**< Optional */
 	int (*device_offline)(device_t *);			/**< Optional */
@@ -110,5 +110,5 @@
 	/* Operations on endpoint */
 	int (*endpoint_register)(endpoint_t *);
-	int (*endpoint_unregister)(endpoint_t *);
+	void (*endpoint_unregister)(endpoint_t *);
 	void (*endpoint_destroy)(endpoint_t *);			/**< Optional */
 	void (*endpoint_toggle_reset)(endpoint_t *);		/**< Optional */
@@ -117,6 +117,6 @@
 
 	/* Operations on batch */
+	int (*batch_schedule)(usb_transfer_batch_t *);
 	void (*batch_destroy)(usb_transfer_batch_t *);		/**< Optional */
-	int (*batch_schedule)(usb_transfer_batch_t *);
 };
 
@@ -149,5 +149,5 @@
 
 int bus_device_enumerate(device_t *);
-int bus_device_remove(device_t *);
+void bus_device_remove(device_t *);
 
 int bus_device_online(device_t *);
Index: uspace/lib/usbhost/src/bus.c
===================================================================
--- uspace/lib/usbhost/src/bus.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/lib/usbhost/src/bus.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -112,11 +112,10 @@
  * Invoke the device_remove bus operation.
  */
-int bus_device_remove(device_t *dev)
+void bus_device_remove(device_t *dev)
 {
 	assert(dev);
 
 	const bus_ops_t *ops = BUS_OPS_LOOKUP(dev->bus->ops, device_remove);
-	if (!ops)
-		return ENOTSUP;
+	assert(ops);
 
 	return ops->device_remove(dev);
@@ -266,11 +265,7 @@
 
 	fibril_mutex_lock(&device->guard);
-	const int r = ops->endpoint_unregister(ep);
-	if (!r)
-		device->endpoints[ep->endpoint] = NULL;
+	ops->endpoint_unregister(ep);
+	device->endpoints[ep->endpoint] = NULL;
 	fibril_mutex_unlock(&device->guard);
-
-	if (r)
-		return r;
 
 	/* Abort a transfer batch, if there was any */
Index: uspace/lib/usbhost/src/usb2_bus.c
===================================================================
--- uspace/lib/usbhost/src/usb2_bus.c	(revision a6c45979c542aedd3bd337f51801ed320a5aee6a)
+++ uspace/lib/usbhost/src/usb2_bus.c	(revision bad4a050d11dd44a634a911a7e5a42918d984aab)
@@ -250,5 +250,5 @@
  * Release bandwidth reserved by the given endpoint.
  */
-static int usb2_bus_unregister_ep(endpoint_t *ep)
+static void usb2_bus_unregister_ep(endpoint_t *ep)
 {
 	usb2_bus_t *bus = bus_to_usb2_bus(ep->device->bus);
@@ -256,6 +256,4 @@
 
 	bus->free_bw += ep->bandwidth;
-
-	return EOK;
 }
 
