Index: uspace/lib/usbhost/include/usb/host/batch.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/batch.h	(revision 3822f7c929b213d8332f263cbac140648c65cd4d)
+++ uspace/lib/usbhost/include/usb/host/batch.h	(revision a837544ff7de38a7b9bbf9d072709b57ba704a92)
@@ -78,5 +78,5 @@
     char *buffer,
     size_t buffer_size,
-    char setup_buffer[USB_SETUP_PACKET_SIZE],
+    uint64_t setup_buffer,
     usbhc_iface_transfer_in_callback_t func_in,
     usbhc_iface_transfer_out_callback_t func_out,
Index: uspace/lib/usbhost/src/batch.c
===================================================================
--- uspace/lib/usbhost/src/batch.c	(revision 3822f7c929b213d8332f263cbac140648c65cd4d)
+++ uspace/lib/usbhost/src/batch.c	(revision a837544ff7de38a7b9bbf9d072709b57ba704a92)
@@ -44,5 +44,5 @@
     char *buffer,
     size_t buffer_size,
-    char setup_buffer[USB_SETUP_PACKET_SIZE],
+    uint64_t setup_buffer,
     usbhc_iface_transfer_in_callback_t func_in,
     usbhc_iface_transfer_out_callback_t func_out,
@@ -68,6 +68,5 @@
 		instance->error = EOK;
 		if (ep && ep->transfer_type == USB_TRANSFER_CONTROL) {
-			assert(setup_buffer);
-			memcpy(instance->setup_buffer, setup_buffer,
+			memcpy(instance->setup_buffer, &setup_buffer,
 			    USB_SETUP_PACKET_SIZE);
 			instance->setup_size = USB_SETUP_PACKET_SIZE;
Index: uspace/lib/usbhost/src/iface.c
===================================================================
--- uspace/lib/usbhost/src/iface.c	(revision 3822f7c929b213d8332f263cbac140648c65cd4d)
+++ uspace/lib/usbhost/src/iface.c	(revision a837544ff7de38a7b9bbf9d072709b57ba704a92)
@@ -41,5 +41,5 @@
 static inline int send_batch(
     ddf_fun_t *fun, usb_target_t target, usb_direction_t direction,
-    void *data, size_t size, void * setup_data,
+    void *data, size_t size, uint64_t setup_data,
     usbhc_iface_transfer_in_callback_t in,
     usbhc_iface_transfer_out_callback_t out, void *arg, const char* name)
@@ -236,5 +236,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_OUT, data, size,
-	    NULL, NULL, callback, arg, "Interrupt OUT");
+	    0, NULL, callback, arg, "Interrupt OUT");
 }
 /*----------------------------------------------------------------------------*/
@@ -254,5 +254,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_IN, data, size,
-	    NULL, callback, NULL, arg, "Interrupt IN");
+	    0, callback, NULL, arg, "Interrupt IN");
 }
 /*----------------------------------------------------------------------------*/
@@ -272,5 +272,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_OUT, data, size,
-	    NULL, NULL, callback, arg, "Bulk OUT");
+	    0, NULL, callback, arg, "Bulk OUT");
 }
 /*----------------------------------------------------------------------------*/
@@ -290,5 +290,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_IN, data, size,
-	    NULL, callback, NULL, arg, "Bulk IN");
+	    0, callback, NULL, arg, "Bulk IN");
 }
 /*----------------------------------------------------------------------------*/
@@ -310,6 +310,8 @@
     usbhc_iface_transfer_out_callback_t callback, void *arg)
 {
+	uint64_t setup_buffer;
+	memcpy(&setup_buffer, setup_data, 8);
 	return send_batch(fun, target, USB_DIRECTION_BOTH, data, size,
-	    setup_data, NULL, callback, arg, "Control WRITE");
+	    setup_buffer, NULL, callback, arg, "Control WRITE");
 }
 /*----------------------------------------------------------------------------*/
@@ -331,6 +333,8 @@
     usbhc_iface_transfer_in_callback_t callback, void *arg)
 {
+	uint64_t setup_buffer;
+	memcpy(&setup_buffer, setup_data, 8);
 	return send_batch(fun, target, USB_DIRECTION_BOTH, data, size,
-	    setup_data, callback, NULL, arg, "Control READ");
+	    setup_buffer, callback, NULL, arg, "Control READ");
 }
 /*----------------------------------------------------------------------------*/
@@ -340,5 +344,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_IN, data, size,
-	    &setup_data, callback, NULL, arg, "READ");
+	    setup_data, callback, NULL, arg, "READ");
 }
 /*----------------------------------------------------------------------------*/
@@ -348,5 +352,5 @@
 {
 	return send_batch(fun, target, USB_DIRECTION_OUT, (uint8_t*)data, size,
-	    &setup_data, NULL, callback, arg, "WRITE");
+	    setup_data, NULL, callback, arg, "WRITE");
 }
 /*----------------------------------------------------------------------------*/
