aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/3w-9xxx.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index 113aaed490d4..76c09097175f 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1902,17 +1902,11 @@ out:
1902static void twa_scsiop_execute_scsi_complete(TW_Device_Extension *tw_dev, int request_id) 1902static void twa_scsiop_execute_scsi_complete(TW_Device_Extension *tw_dev, int request_id)
1903{ 1903{
1904 struct scsi_cmnd *cmd = tw_dev->srb[request_id]; 1904 struct scsi_cmnd *cmd = tw_dev->srb[request_id];
1905 int use_sg = scsi_sg_count(cmd);
1906 1905
1907 if (scsi_bufflen(cmd) < TW_MIN_SGL_LENGTH && 1906 if (scsi_bufflen(cmd) < TW_MIN_SGL_LENGTH &&
1908 (cmd->sc_data_direction == DMA_FROM_DEVICE || 1907 (cmd->sc_data_direction == DMA_FROM_DEVICE ||
1909 cmd->sc_data_direction == DMA_BIDIRECTIONAL)) { 1908 cmd->sc_data_direction == DMA_BIDIRECTIONAL)) {
1910 if (!use_sg) 1909 if (scsi_sg_count(cmd) == 1) {
1911 memcpy(scsi_sglist(cmd),
1912 tw_dev->generic_buffer_virt[request_id],
1913 scsi_bufflen(cmd));
1914
1915 if (use_sg == 1) {
1916 struct scatterlist *sg = scsi_sglist(tw_dev->srb[request_id]); 1910 struct scatterlist *sg = scsi_sglist(tw_dev->srb[request_id]);
1917 char *buf; 1911 char *buf;
1918 unsigned long flags = 0; 1912 unsigned long flags = 0;