Index: uspace/drv/ohci/hw_struct/hcca.h
===================================================================
--- uspace/drv/ohci/hw_struct/hcca.h	(revision 26d46d24d73a756523746db7987f7683c3dceffd)
+++ uspace/drv/ohci/hw_struct/hcca.h	(revision fd153d38cfe71e2675e78a4e120517490eb3a96b)
@@ -43,5 +43,5 @@
 	uint32_t done_head;
 	uint32_t reserved[29];
-} __attribute__((packed)) hcca_t;
+} __attribute__((packed, aligned)) hcca_t;
 
 #endif
Index: uspace/drv/ohci/hw_struct/transfer_descriptor.c
===================================================================
--- uspace/drv/ohci/hw_struct/transfer_descriptor.c	(revision 26d46d24d73a756523746db7987f7683c3dceffd)
+++ uspace/drv/ohci/hw_struct/transfer_descriptor.c	(revision fd153d38cfe71e2675e78a4e120517490eb3a96b)
@@ -53,4 +53,5 @@
 	}
 	if (buffer != NULL) {
+		assert(size != 0);
 		instance->cbp = addr_to_phys(buffer);
 		instance->be = addr_to_phys(buffer + size - 1);
Index: uspace/drv/ohci/utils/malloc32.h
===================================================================
--- uspace/drv/ohci/utils/malloc32.h	(revision 26d46d24d73a756523746db7987f7683c3dceffd)
+++ uspace/drv/ohci/utils/malloc32.h	(revision fd153d38cfe71e2675e78a4e120517490eb3a96b)
@@ -41,5 +41,4 @@
 #include <as.h>
 
-#define UHCI_STRCUTURES_ALIGNMENT 16
 #define UHCI_REQUIRED_PAGE_SIZE 4096
 
@@ -65,5 +64,5 @@
  */
 static inline void * malloc32(size_t size)
-	{ return memalign(UHCI_STRCUTURES_ALIGNMENT, size); }
+	{ return memalign(size, size); }
 /*----------------------------------------------------------------------------*/
 /** Physical mallocator simulator
