Index: uspace/drv/bus/usb/ohci/ohci.c
===================================================================
--- uspace/drv/bus/usb/ohci/ohci.c	(revision 0f1586d02fb3e896df27301e8ac427ce1e655014)
+++ uspace/drv/bus/usb/ohci/ohci.c	(revision 709986181d79d64cbed458a50b00455f6433a17a)
@@ -44,5 +44,4 @@
 #include "pci.h"
 #include "hc.h"
-#include "root_hub.h"
 
 typedef struct ohci {
@@ -51,5 +50,4 @@
 
 	hc_t hc;
-	rh_t rh;
 } ohci_t;
 
@@ -150,4 +148,6 @@
 int device_setup_ohci(ddf_dev_t *device)
 {
+	assert(device);
+
 	ohci_t *instance = malloc(sizeof(ohci_t));
 	if (instance == NULL) {
@@ -155,24 +155,20 @@
 		return ENOMEM;
 	}
+	instance->rh_fun = NULL;
+	instance->hc_fun = NULL;
 
 #define CHECK_RET_DEST_FREE_RETURN(ret, message...) \
 if (ret != EOK) { \
 	if (instance->hc_fun) { \
-		instance->hc_fun->ops = NULL; \
-		instance->hc_fun->driver_data = NULL; \
 		ddf_fun_destroy(instance->hc_fun); \
 	} \
 	if (instance->rh_fun) { \
-		instance->rh_fun->ops = NULL; \
-		instance->rh_fun->driver_data = NULL; \
 		ddf_fun_destroy(instance->rh_fun); \
 	} \
 	free(instance); \
-	device->driver_data = NULL; \
 	usb_log_error(message); \
 	return ret; \
 } else (void)0
 
-	instance->rh_fun = NULL;
 	instance->hc_fun = ddf_fun_create(device, fun_exposed, "ohci_hc");
 	int ret = instance->hc_fun ? EOK : ENOMEM;
@@ -194,5 +190,5 @@
 	ret = pci_get_my_registers(device, &reg_base, &reg_size, &irq);
 	CHECK_RET_DEST_FREE_RETURN(ret,
-	    "Failed to get memory addresses for %" PRIun ": %s.\n",
+	    "Failed to get register memory addresses for %" PRIun ": %s.\n",
 	    device->handle, str_error(ret));
 	usb_log_debug("Memory mapped regs at %p (size %zu), IRQ %d.\n",
@@ -201,4 +197,6 @@
 	const size_t cmd_count = hc_irq_cmd_count();
 	irq_cmd_t irq_cmds[cmd_count];
+	irq_code_t irq_code = { .cmdcount = cmd_count, .cmds = irq_cmds };
+
 	ret =
 	    hc_get_irq_commands(irq_cmds, sizeof(irq_cmds), reg_base, reg_size);
@@ -206,5 +204,4 @@
 	    "Failed to generate IRQ commands: %s.\n", str_error(ret));
 
-	irq_code_t irq_code = { .cmdcount = cmd_count, .cmds = irq_cmds };
 
 	/* Register handler to avoid interrupt lockup */
@@ -251,5 +248,4 @@
 	return EOK;
 
-#undef CHECK_RET_DEST_FUN_RETURN
 #undef CHECK_RET_FINI_RETURN
 }
