Index: uspace/drv/uhci/uhci_struct/link_pointer.h
===================================================================
--- uspace/drv/uhci/uhci_struct/link_pointer.h	(revision 643b98353f9443b4fab7c97692595995c2064a21)
+++ uspace/drv/uhci/uhci_struct/link_pointer.h	(revision bae9e763d841ff1e04ce1fca82c806fdaf492d5e)
@@ -36,11 +36,12 @@
 
 /* UHCI link pointer, used by many data structures */
-typedef struct link_pointer {
-	uint32_t addr:28;
-	uint8_t zero:1;
-	uint8_t reserved:1;
-	uint8_t qh:1;
-	uint8_t terminate:1;
-} __attribute__((packed)) link_pointer_t;
+typedef uint32_t link_pointer_t;
+
+#define LINK_POINTER_TERMINATE_FLAG (1 << 0);
+#define LINK_POINTER_QUEUE_HEAD_FLAG (1 << 1);
+#define LINK_POINTER_ZERO_BIT_FLAG (1 << 2);
+#define LINK_POINTER_RESERVED_FLAG (1 << 3);
+
+#define LINK_POINTER_ADDRESS_MASK 0xfffffff0 /* upper 28 bits */
 
 #endif
Index: uspace/drv/uhci/uhci_struct/queue_head.h
===================================================================
--- uspace/drv/uhci/uhci_struct/queue_head.h	(revision 643b98353f9443b4fab7c97692595995c2064a21)
+++ uspace/drv/uhci/uhci_struct/queue_head.h	(revision bae9e763d841ff1e04ce1fca82c806fdaf492d5e)
@@ -38,5 +38,4 @@
 #include <assert.h>
 
-#include "translating_malloc.h"
 #include "link_pointer.h"
 
@@ -46,16 +45,15 @@
 } __attribute__((packed)) queue_head_t;
 
-static inline void queue_head_init(queue_head_t *instance, uint32_t next_pa)
+static inline void queue_head_init(queue_head_t *instance, uint32_t next_queue_pa)
 {
 	assert(instance);
-	assert((next_pa & 0xf) == 0);
+	assert((next_queue_pa & LINK_POINTER_ADDRESS_MASK) == next_queue_pa);
 
-	memset(instance, 0, sizeof(*instance));
-	instance->element.terminate = 1;
-	if (next_pa) {
-		instance->next_queue.terminate = 0;
-		instance->next_queue.addr = next_pa >> 4;
+	instance->element = 0 | LINK_POINTER_TERMINATE_FLAG;
+	if (next_queue_pa) {
+		instance->next_queue = (next_queue_pa & LINK_POINTER_ADDRESS_MASK)
+		  | LINK_POINTER_QUEUE_HEAD_FLAG;
 	} else {
-		instance->element.terminate = 1;
+		instance->next_queue = 0 | LINK_POINTER_TERMINATE_FLAG;
 	}
 }
