aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx/aic79xx_osm.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 14:25:31 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 14:25:31 -0400
commit2cca775baecbfede2fec20c99add709232311fe7 (patch)
treeb0eefe80881d263ba7976174144ae4e9cf238425 /drivers/scsi/aic7xxx/aic79xx_osm.c
parenteddeb0e2d863e3941d8768e70cb50c6120e61fa0 (diff)
parent94795b61e84994a3b058f92d041d1fb3d869c7d5 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (137 commits) [SCSI] iscsi: bidi support for iscsi_tcp [SCSI] iscsi: bidi support at the generic libiscsi level [SCSI] iscsi: extended cdb support [SCSI] zfcp: Fix error handling for blocked unit for send FCP command [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock [SCSI] zfcp: fix 31 bit compile warnings [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands [SCSI] bsg: remove minor in struct bsg_device [SCSI] bsg: use better helper list functions [SCSI] bsg: replace kobject_get with blk_get_queue [SCSI] bsg: takes a ref to struct device in fops->open [SCSI] qla1280: remove version check [SCSI] libsas: fix endianness bug in sas_ata [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next) [SCSI] aacraid: Do not describe check_reset parameter with its value [SCSI] aacraid: Fix down_interruptible() to check the return value [SCSI] sun3_scsi_vme: add MODULE_LICENSE [SCSI] st: rename flush_write_buffer() [SCSI] tgt: use KMEM_CACHE macro [SCSI] initio: fix big endian problems for auto request sense ...
Diffstat (limited to 'drivers/scsi/aic7xxx/aic79xx_osm.c')
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 72fccd9f40df..0081aa357c8b 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -1413,6 +1413,10 @@ ahd_linux_run_command(struct ahd_softc *ahd, struct ahd_linux_device *dev,
1413 unsigned long flags; 1413 unsigned long flags;
1414 int nseg; 1414 int nseg;
1415 1415
1416 nseg = scsi_dma_map(cmd);
1417 if (nseg < 0)
1418 return SCSI_MLQUEUE_HOST_BUSY;
1419
1416 ahd_lock(ahd, &flags); 1420 ahd_lock(ahd, &flags);
1417 1421
1418 /* 1422 /*
@@ -1430,6 +1434,7 @@ ahd_linux_run_command(struct ahd_softc *ahd, struct ahd_linux_device *dev,
1430 if ((scb = ahd_get_scb(ahd, col_idx)) == NULL) { 1434 if ((scb = ahd_get_scb(ahd, col_idx)) == NULL) {
1431 ahd->flags |= AHD_RESOURCE_SHORTAGE; 1435 ahd->flags |= AHD_RESOURCE_SHORTAGE;
1432 ahd_unlock(ahd, &flags); 1436 ahd_unlock(ahd, &flags);
1437 scsi_dma_unmap(cmd);
1433 return SCSI_MLQUEUE_HOST_BUSY; 1438 return SCSI_MLQUEUE_HOST_BUSY;
1434 } 1439 }
1435 1440
@@ -1485,8 +1490,6 @@ ahd_linux_run_command(struct ahd_softc *ahd, struct ahd_linux_device *dev,
1485 ahd_set_sense_residual(scb, 0); 1490 ahd_set_sense_residual(scb, 0);
1486 scb->sg_count = 0; 1491 scb->sg_count = 0;
1487 1492
1488 nseg = scsi_dma_map(cmd);
1489 BUG_ON(nseg < 0);
1490 if (nseg > 0) { 1493 if (nseg > 0) {
1491 void *sg = scb->sg_list; 1494 void *sg = scb->sg_list;
1492 struct scatterlist *cur_seg; 1495 struct scatterlist *cur_seg;