Index: uspace/lib/usbhost/include/usb/host/batch.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/batch.h	(revision f18d82f058cb6087d2a2dfe4118693b064b90147)
+++ uspace/lib/usbhost/include/usb/host/batch.h	(revision 4e9ecf48bac340923e405603d7f09121bd6b7278)
@@ -44,15 +44,12 @@
 struct usb_transfer_batch {
 	endpoint_t *ep;
-	link_t link;
 	usbhc_iface_transfer_in_callback_t callback_in;
 	usbhc_iface_transfer_out_callback_t callback_out;
 	void *arg;
 	char *buffer;
-	char *data_buffer;
 	size_t buffer_size;
 	char *setup_buffer;
 	size_t setup_size;
 	size_t transfered_size;
-	void (*next_step)(usb_transfer_batch_t *);
 	int error;
 	ddf_fun_t *fun;
@@ -78,5 +75,4 @@
     endpoint_t *ep,
     char *buffer,
-    char *data_buffer,
     size_t buffer_size,
     char *setup_buffer,
@@ -127,11 +123,4 @@
 	usb_transfer_batch_finish(instance, data, size);
 }
-/*----------------------------------------------------------------------------*/
-static inline usb_transfer_batch_t *usb_transfer_batch_from_link(link_t *l)
-{
-	assert(l);
-	return list_get_instance(l, usb_transfer_batch_t, link);
-}
-
 #endif
 /**
Index: uspace/lib/usbhost/src/batch.c
===================================================================
--- uspace/lib/usbhost/src/batch.c	(revision f18d82f058cb6087d2a2dfe4118693b064b90147)
+++ uspace/lib/usbhost/src/batch.c	(revision 4e9ecf48bac340923e405603d7f09121bd6b7278)
@@ -43,5 +43,4 @@
     endpoint_t *ep,
     char *buffer,
-    char *data_buffer,
     size_t buffer_size,
     char *setup_buffer,
@@ -57,5 +56,4 @@
 	usb_transfer_batch_t *instance = malloc(sizeof(usb_transfer_batch_t));
 	if (instance) {
-		link_initialize(&instance->link);
 		instance->ep = ep;
 		instance->callback_in = func_in;
@@ -63,5 +61,4 @@
 		instance->arg = arg;
 		instance->buffer = buffer;
-		instance->data_buffer = data_buffer;
 		instance->buffer_size = buffer_size;
 		instance->setup_buffer = setup_buffer;
@@ -71,5 +68,4 @@
 		instance->private_data_dtor = private_data_dtor;
 		instance->transfered_size = 0;
-		instance->next_step = NULL;
 		instance->error = EOK;
 		if (instance->ep)
@@ -113,9 +109,4 @@
 	assert(instance);
 	assert(instance->callback_in);
-
-	/* We are data in, we need data */
-	if (instance->data_buffer && (instance->buffer != instance->data_buffer))
-		memcpy(instance->buffer,
-		    instance->data_buffer, instance->buffer_size);
 
 	usb_log_debug2("Batch %p " USB_TRANSFER_BATCH_FMT " completed (%zuB): %s.\n",
Index: uspace/lib/usbhost/src/iface.c
===================================================================
--- uspace/lib/usbhost/src/iface.c	(revision f18d82f058cb6087d2a2dfe4118693b064b90147)
+++ uspace/lib/usbhost/src/iface.c	(revision 4e9ecf48bac340923e405603d7f09121bd6b7278)
@@ -78,6 +78,6 @@
 	/* No private data and no private data dtor */
 	usb_transfer_batch_t *batch =
-	    usb_transfer_batch_get(ep, data, NULL, size, setup_data,
-		setup_size, in, out, arg, fun, NULL, NULL);
+	    usb_transfer_batch_get(ep, data, size, setup_data, setup_size,
+	    in, out, arg, fun, NULL, NULL);
 	if (!batch) {
 		return ENOMEM;
