diff options
-rw-r--r-- | drivers/scsi/libata-core.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 5060a1a1ad25..1a00c80b96d4 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
@@ -3809,7 +3809,7 @@ fsm_start: | |||
3809 | 3809 | ||
3810 | if (timeout) | 3810 | if (timeout) |
3811 | ata_port_queue_task(ap, ata_pio_task, ap, timeout); | 3811 | ata_port_queue_task(ap, ata_pio_task, ap, timeout); |
3812 | else if (!qc_completed) | 3812 | else if (has_next) |
3813 | goto fsm_start; | 3813 | goto fsm_start; |
3814 | } | 3814 | } |
3815 | 3815 | ||
@@ -3866,7 +3866,8 @@ static void atapi_packet_task(void *_data) | |||
3866 | * finished. Hence, the following locking. | 3866 | * finished. Hence, the following locking. |
3867 | */ | 3867 | */ |
3868 | spin_lock_irqsave(&ap->host_set->lock, flags); | 3868 | spin_lock_irqsave(&ap->host_set->lock, flags); |
3869 | ap->flags &= ~ATA_FLAG_NOINTR; | 3869 | #warning FIXME |
3870 | /* ap->flags &= ~ATA_FLAG_NOINTR; */ | ||
3870 | ata_data_xfer(ap, qc->cdb, qc->dev->cdb_len, 1); | 3871 | ata_data_xfer(ap, qc->cdb, qc->dev->cdb_len, 1); |
3871 | if (qc->tf.protocol == ATA_PROT_ATAPI_DMA) | 3872 | if (qc->tf.protocol == ATA_PROT_ATAPI_DMA) |
3872 | ap->ops->bmdma_start(qc); /* initiate bmdma */ | 3873 | ap->ops->bmdma_start(qc); /* initiate bmdma */ |
@@ -4200,7 +4201,7 @@ unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc) | |||
4200 | ap->hsm_task_state = HSM_ST_LAST; | 4201 | ap->hsm_task_state = HSM_ST_LAST; |
4201 | 4202 | ||
4202 | if (qc->tf.flags & ATA_TFLAG_POLLING) | 4203 | if (qc->tf.flags & ATA_TFLAG_POLLING) |
4203 | ata_queue_pio_task(ap); | 4204 | ata_port_queue_task(ap, ata_pio_task, ap, 0); |
4204 | 4205 | ||
4205 | break; | 4206 | break; |
4206 | 4207 | ||