Index: uspace/drv/usbhub/utils.c
===================================================================
--- uspace/drv/usbhub/utils.c	(revision 09daa8b028b335344fb53167644884cff2671a8b)
+++ uspace/drv/usbhub/utils.c	(revision ba358ed1a4aba4117ec596f5a482ee72d3380d6f)
@@ -60,7 +60,7 @@
 	size_t size = 7;
 	//variable size according to port count
-	size_t var_size = descriptor->ports_count / 8 + ((descriptor->ports_count % 8 > 0) ? 1 : 0);
+	size_t var_size = (descriptor->ports_count+7)/8;
 	size += 2 * var_size;
-	uint8_t * result = (uint8_t*) malloc(size);
+	uint8_t * result = malloc(size);
 	//size
 	result[0] = size;
@@ -84,13 +84,15 @@
 }
 
-usb_hub_descriptor_t * usb_deserialize_hub_desriptor(void * serialized_descriptor) {
-	uint8_t * sdescriptor = (uint8_t*) serialized_descriptor;
+usb_hub_descriptor_t * usb_deserialize_hub_desriptor(
+void * serialized_descriptor) {
+	uint8_t * sdescriptor = serialized_descriptor;
 
 	if (sdescriptor[1] != USB_DESCTYPE_HUB) {
-		usb_log_warning("trying to deserialize wrong descriptor %x\n",sdescriptor[1]);
+		usb_log_warning("trying to deserialize wrong descriptor %x\n",
+		    sdescriptor[1]);
 		return NULL;
 	}
 
-	usb_hub_descriptor_t * result = usb_new(usb_hub_descriptor_t);
+	usb_hub_descriptor_t * result = malloc(sizeof(usb_hub_descriptor_t));
 	
 
@@ -100,6 +102,5 @@
 	result->pwr_on_2_good_time = sdescriptor[5];
 	result->current_requirement = sdescriptor[6];
-	size_t var_size = result->ports_count / 8 + ((result->ports_count % 8 > 0)
-			? 1 : 0);
+	size_t var_size = (result->ports_count+7) / 8;
 	result->devices_removable = (uint8_t*) malloc(var_size);
 
