aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/NCR5380.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/NCR5380.c')
-rw-r--r--drivers/scsi/NCR5380.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 5d2f148889ad..165e4dd865d9 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -936,8 +936,7 @@ static void NCR5380_exit(struct Scsi_Host *instance)
936{ 936{
937 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; 937 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
938 938
939 cancel_delayed_work(&hostdata->coroutine); 939 cancel_delayed_work_sync(&hostdata->coroutine);
940 flush_scheduled_work();
941} 940}
942 941
943/** 942/**
@@ -952,7 +951,7 @@ static void NCR5380_exit(struct Scsi_Host *instance)
952 * Locks: host lock taken by caller 951 * Locks: host lock taken by caller
953 */ 952 */
954 953
955static int NCR5380_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)) 954static int NCR5380_queue_command_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
956{ 955{
957 struct Scsi_Host *instance = cmd->device->host; 956 struct Scsi_Host *instance = cmd->device->host;
958 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; 957 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata;
@@ -1021,6 +1020,7 @@ static int NCR5380_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *))
1021 return 0; 1020 return 0;
1022} 1021}
1023 1022
1023static DEF_SCSI_QCMD(NCR5380_queue_command)
1024 1024
1025/** 1025/**
1026 * NCR5380_main - NCR state machines 1026 * NCR5380_main - NCR state machines
@@ -1198,12 +1198,12 @@ static irqreturn_t NCR5380_intr(int dummy, void *dev_id)
1198 */ 1198 */
1199 1199
1200 if ((NCR5380_read(MODE_REG) & MR_DMA) && ((basr & BASR_END_DMA_TRANSFER) || !(basr & BASR_PHASE_MATCH))) { 1200 if ((NCR5380_read(MODE_REG) & MR_DMA) && ((basr & BASR_END_DMA_TRANSFER) || !(basr & BASR_PHASE_MATCH))) {
1201 int transfered; 1201 int transferred;
1202 1202
1203 if (!hostdata->connected) 1203 if (!hostdata->connected)
1204 panic("scsi%d : received end of DMA interrupt with no connected cmd\n", instance->hostno); 1204 panic("scsi%d : received end of DMA interrupt with no connected cmd\n", instance->hostno);
1205 1205
1206 transfered = (hostdata->dmalen - NCR5380_dma_residual(instance)); 1206 transferred = (hostdata->dmalen - NCR5380_dma_residual(instance));
1207 hostdata->connected->SCp.this_residual -= transferred; 1207 hostdata->connected->SCp.this_residual -= transferred;
1208 hostdata->connected->SCp.ptr += transferred; 1208 hostdata->connected->SCp.ptr += transferred;
1209 hostdata->dmalen = 0; 1209 hostdata->dmalen = 0;
@@ -1563,7 +1563,7 @@ failed:
1563 * bytes to transfer, **data - pointer to data pointer. 1563 * bytes to transfer, **data - pointer to data pointer.
1564 * 1564 *
1565 * Returns : -1 when different phase is entered without transferring 1565 * Returns : -1 when different phase is entered without transferring
1566 * maximum number of bytes, 0 if all bytes or transfered or exit 1566 * maximum number of bytes, 0 if all bytes or transferred or exit
1567 * is in same phase. 1567 * is in same phase.
1568 * 1568 *
1569 * Also, *phase, *count, *data are modified in place. 1569 * Also, *phase, *count, *data are modified in place.
@@ -1800,7 +1800,7 @@ static int do_abort(struct Scsi_Host *host) {
1800 * bytes to transfer, **data - pointer to data pointer. 1800 * bytes to transfer, **data - pointer to data pointer.
1801 * 1801 *
1802 * Returns : -1 when different phase is entered without transferring 1802 * Returns : -1 when different phase is entered without transferring
1803 * maximum number of bytes, 0 if all bytes or transfered or exit 1803 * maximum number of bytes, 0 if all bytes or transferred or exit
1804 * is in same phase. 1804 * is in same phase.
1805 * 1805 *
1806 * Also, *phase, *count, *data are modified in place. 1806 * Also, *phase, *count, *data are modified in place.