diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 14:25:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 14:25:31 -0400 |
commit | 2cca775baecbfede2fec20c99add709232311fe7 (patch) | |
tree | b0eefe80881d263ba7976174144ae4e9cf238425 /drivers/scsi/aic7xxx/aic79xx_osm.c | |
parent | eddeb0e2d863e3941d8768e70cb50c6120e61fa0 (diff) | |
parent | 94795b61e84994a3b058f92d041d1fb3d869c7d5 (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.c | 7 |
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; |