Index: uspace/drv/usbhub/port_status.h
===================================================================
--- uspace/drv/usbhub/port_status.h	(revision a4e18e1e33397c8ddac49bbb77b9cac96670e076)
+++ uspace/drv/usbhub/port_status.h	(revision 36cd37839915db036419c6b73b738e4ca58398e4)
@@ -282,5 +282,5 @@
  */
 static inline bool usb_hub_get_bit(usb_hub_status_t * status, int idx) {
-	return (*status)&(1 << idx);
+	return ((*status)&(1 << idx))!=0;
 }
 
@@ -309,4 +309,10 @@
 }
 
+/**
+ * set device connected bit in port status
+ *
+ * @param status
+ * @param connected value of the bit
+ */
 static inline void usb_port_set_dev_connected(usb_port_status_t * status, bool connected) {
 	usb_port_set_bit(status, 0, connected);
@@ -325,4 +331,10 @@
 }
 
+/**
+ * set port enabled bit in port status
+ *
+ * @param status
+ * @param enabled value of the bit
+ */
 static inline void usb_port_set_enabled(usb_port_status_t * status, bool enabled) {
 	usb_port_set_bit(status, 1, enabled);
@@ -340,4 +352,10 @@
 }
 
+/**
+ * set port suspended bit in port status
+ *
+ * @param status
+ * @param suspended value of the bit
+ */
 static inline void usb_port_set_suspended(usb_port_status_t * status, bool suspended) {
 	usb_port_set_bit(status, 2, suspended);
@@ -355,4 +373,10 @@
 }
 
+/**
+ * set over current indicator bit in port status
+ *
+ * @param status
+ * @param value value of the bit
+ */
 static inline void usb_port_set_over_current(usb_port_status_t * status, bool value) {
 	usb_port_set_bit(status, 3, value);
@@ -370,4 +394,10 @@
 }
 
+/**
+ * set port reset bit in port status
+ *
+ * @param status
+ * @param value value of the bit
+ */
 static inline void usb_port_set_reset(usb_port_status_t * status, bool value) {
 	usb_port_set_bit(status, 4, value);
@@ -385,4 +415,10 @@
 }
 
+/**
+ * set port powered bit in port status
+ *
+ * @param status
+ * @param powered value of the bit
+ */
 static inline void usb_port_set_powered(usb_port_status_t * status, bool powered) {
 	usb_port_set_bit(status, 8, powered);
@@ -400,4 +436,10 @@
 }
 
+/**
+ * set device connected bit in port status
+ * 
+ * @param status
+ * @param low_speed value of the bit
+ */
 static inline void usb_port_set_low_speed(usb_port_status_t * status, bool low_speed) {
 	usb_port_set_bit(status, 9, low_speed);
@@ -415,4 +457,10 @@
 }
 
+/**
+ * set high speed device bit in port status
+ *
+ * @param status
+ * @param high_speed value of the bit
+ */
 static inline void usb_port_set_high_speed(usb_port_status_t * status, bool high_speed) {
 	usb_port_set_bit(status, 10, high_speed);
@@ -445,4 +493,9 @@
 }
 
+/**
+ * set connection change bit in port status
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_port_set_connect_change(usb_port_status_t * status, bool change) {
 	usb_port_set_bit(status, 16, change);
@@ -460,4 +513,10 @@
 }
 
+/**
+ * set port enable change bit in port status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_port_set_enabled_change(usb_port_status_t * status, bool change) {
 	usb_port_set_bit(status, 17, change);
@@ -475,4 +534,10 @@
 }
 
+/**
+ * set port suspend change bit in port status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_port_set_suspend_change(usb_port_status_t * status, bool change) {
 	usb_port_set_bit(status, 18, change);
@@ -490,4 +555,10 @@
 }
 
+/**
+ * set port over current change bit in port status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_port_set_overcurrent_change(usb_port_status_t * status, bool change) {
 	usb_port_set_bit(status, 19, change);
@@ -504,4 +575,10 @@
 }
 
+/**
+ * set port reset completed bit in port status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_port_set_reset_completed(usb_port_status_t * status, bool completed) {
 	usb_port_set_bit(status, 20, completed);
@@ -519,4 +596,10 @@
 }
 
+/**
+ * set hub power lost bit in hub status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_hub_set_local_power_lost(usb_port_status_t * status,
 	bool power_lost) {
@@ -535,4 +618,10 @@
 }
 
+/**
+ * set hub over current bit in hub status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_hub_set_over_current(usb_port_status_t * status,
 	bool over_current) {
@@ -552,4 +641,10 @@
 }
 
+/**
+ * set hub power change bit in hub status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_hub_set_local_power_change(usb_port_status_t * status,
 	bool change) {
@@ -568,4 +663,10 @@
 }
 
+/**
+ * set hub over current change bit in hub status
+ *
+ * @param status
+ * @param change value of the bit
+ */
 static inline void usb_hub_set_over_current_change(usb_port_status_t * status,
 	bool change) {
Index: uspace/drv/usbhub/usbhub.c
===================================================================
--- uspace/drv/usbhub/usbhub.c	(revision a4e18e1e33397c8ddac49bbb77b9cac96670e076)
+++ uspace/drv/usbhub/usbhub.c	(revision 36cd37839915db036419c6b73b738e4ca58398e4)
@@ -399,6 +399,6 @@
 	usb_log_debug2("freeing data\n");
 	free(serialized_descriptor);
-	hub_info->descriptor = descriptor;
-	hub_info->not_initialized_non_removables =
+	//hub_info->descriptor = descriptor;
+	/*hub_info->not_initialized_non_removables =
 		(uint8_t*) malloc((hub_info->port_count + 8) / 8);
 	memcpy(hub_info->not_initialized_non_removables,
@@ -406,7 +406,7 @@
 		(hub_info->port_count + 8) / 8
 		);
-
-	//free(descriptor->devices_removable);
-	//free(descriptor);
+		*/
+	free(descriptor->devices_removable);
+	free(descriptor);
 	return EOK;
 }
Index: uspace/drv/usbhub/usbhub.h
===================================================================
--- uspace/drv/usbhub/usbhub.h	(revision a4e18e1e33397c8ddac49bbb77b9cac96670e076)
+++ uspace/drv/usbhub/usbhub.h	(revision 36cd37839915db036419c6b73b738e4ca58398e4)
@@ -84,11 +84,4 @@
 	/** generic usb device data*/
 	usb_device_t * usb_device;
-
-	/** usb hub specific descriptor */
-	usb_hub_descriptor_t * descriptor;
-
-	/** not yet initialized non-removable devices */
-	uint8_t * not_initialized_non_removables;
-	
 } usb_hub_info_t;
 
