Index: uspace/drv/bus/usb/usbhub/usbhub.c
===================================================================
--- uspace/drv/bus/usb/usbhub/usbhub.c	(revision 940f576183f1b9d918845e73cdd43c21da36ee90)
+++ uspace/drv/bus/usb/usbhub/usbhub.c	(revision 196fbb0232e10cd16b0ed3f9cb4046b7ccdb685f)
@@ -136,7 +136,7 @@
 
 	usb_log_debug("Creating DDF function '" HUB_FNC_NAME "'.\n");
-	ddf_fun_t *hub_fun = ddf_fun_create(hub_info->usb_device->ddf_dev,
+	hub_info->hub_fun = ddf_fun_create(hub_info->usb_device->ddf_dev,
 	    fun_exposed, HUB_FNC_NAME);
-	if (hub_fun == NULL) {
+	if (hub_info->hub_fun == NULL) {
 		usb_log_error("Failed to create hub function.\n");
 		free(hub_info);
@@ -144,10 +144,10 @@
 	}
 
-	opResult = ddf_fun_bind(hub_fun);
+	opResult = ddf_fun_bind(hub_info->hub_fun);
 	if (opResult != EOK) {
 		usb_log_error("Failed to bind hub function: %s.\n",
 		   str_error(opResult));
 		free(hub_info);
-		ddf_fun_destroy(hub_fun);
+		ddf_fun_destroy(hub_info->hub_fun);
 		return opResult;
 	}
@@ -157,5 +157,5 @@
 	    usb_hub_polling_terminated_callback, hub_info);
 	if (opResult != EOK) {
-		ddf_fun_destroy(hub_fun);
+		ddf_fun_destroy(hub_info->hub_fun);
 		free(hub_info);
 		usb_log_error("Failed to create polling fibril: %s.\n",
Index: uspace/drv/bus/usb/usbhub/usbhub.h
===================================================================
--- uspace/drv/bus/usb/usbhub/usbhub.h	(revision 940f576183f1b9d918845e73cdd43c21da36ee90)
+++ uspace/drv/bus/usb/usbhub/usbhub.h	(revision 196fbb0232e10cd16b0ed3f9cb4046b7ccdb685f)
@@ -76,4 +76,5 @@
 	/** Condition variable for pending_ops_count. */
 	fibril_condvar_t pending_ops_cv;
+	ddf_fun_t *hub_fun;
 };
 
