# 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)) {