ChangeSet 1.738.5.27, 2002/10/13 13:49:01-07:00, mdharm-usb@one-eyed-alien.net

[PATCH] usb-storage: convert to common transfer functions

This patch fixes the bulk transport data stage to use the correct pipe for
data exchange, based on the transfer direction.


diff -Nru a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
--- a/drivers/usb/storage/transport.c	Sun Oct 13 17:08:32 2002
+++ b/drivers/usb/storage/transport.c	Sun Oct 13 17:08:32 2002
@@ -1257,8 +1257,10 @@
 	/* DATA STAGE */
 	/* send/receive data payload, if there is any */
 	if (transfer_length) {
-		result = usb_stor_bulk_transfer_srb(us, us->send_bulk_pipe,
-				srb, transfer_length);
+		unsigned int pipe = srb->sc_data_direction == SCSI_DATA_READ ? 
+				us->recv_bulk_pipe : us->send_bulk_pipe;
+		result = usb_stor_bulk_transfer_srb(us, pipe, srb,
+					transfer_length);
 		US_DEBUGP("Bulk data transfer result 0x%x\n", result);
 
 		/* if it was aborted, we need to indicate that */