# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.650   -> 1.651  
#	drivers/usb/image/microtek.c	1.18    -> 1.19   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/09/11	oliver@neukum.name	1.651
# [PATCH] fix for error handling in microtek
# 
# --------------------------------------------
#
diff -Nru a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
--- a/drivers/usb/image/microtek.c	Thu Sep 12 10:26:02 2002
+++ b/drivers/usb/image/microtek.c	Thu Sep 12 10:26:02 2002
@@ -583,13 +583,22 @@
 		return;
 	}
 
-	if ( context->data ) {
+	if (context->srb->cmnd[0] == REQUEST_SENSE) {
 		mts_int_submit_urb(transfer,
 				   context->data_pipe,
-				   context->data,
+				   context->srb->sense_buffer,
 				   context->data_length,
-				   context->srb->use_sg ? mts_do_sg : mts_data_done);
-	} else mts_get_status(transfer);
+				   mts_data_done);
+	} else { if ( context->data ) {
+			mts_int_submit_urb(transfer,
+					   context->data_pipe,
+					   context->data,
+					   context->data_length,
+					   context->srb->use_sg ? mts_do_sg : mts_data_done);
+		} else {
+			mts_get_status(transfer);
+		}
+	}
 
 	return;
 }
@@ -598,7 +607,7 @@
 {
 	struct scatterlist * sg;
 	MTS_INT_INIT();
-	
+
 	MTS_DEBUG("Processing fragment %d of %d\n", context->fragment,context->srb->use_sg);
 
 	if (unlikely(transfer->status)) {
